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
};
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.