使用 Cheerio 对 HTML 进行解析和 dom 渲染操作,无网络和磁盘操作。
单纯的内存对象处理,使用了一些正则匹配。
mac 开发环境 60 ~ 80ms 执行时间
打包 docker 之后,mac 无资源限制的情况下,执行同一个 HTML 用了 600+ms
docker 部署到服务器后,也是 600ms+, 裸机 debian ,centos 测试结果相差不大,考虑到机器差异。
有办法知道是哪的差异吗?这个性能差异有点大。
// 问题片段
async run(){
const startTime = new Date().getTime();
const config = await loadConfig();
const { body: { run } } = config;
let data: any = {};
// dom 渲染
this.render();
// 解析 dom 数据
for (const [key, value] of Object.entries(run)) {
data[key] = this.parse({item: value, parentElement: null, parentKey: 'run' });
}
const endTime = new Date().getTime();
const execTimeMs = (endTime - startTime);
return {
exec_time_ms: execTimeMs,
...data
};
}