共计 580 个字符,预计需要花费 2 分钟才能阅读完成。
TS 封装了一个 class
使用 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
};
}
正文完