【发布时间】:2023-03-18 17:33:03
【问题描述】:
我使用puppeteer 和puppeteer-cluster 对网页进行了性能测试。对于每个用户交互,都会生成一个 chrome dev tools 时间跟踪 json 文件。最后我得到了超过 18,000 个文件,大小在 6M-300K 之间。
我还写了一个脚本,对json文件一一处理,找出交互的开始时间、结束时间和持续时间,并生成最终的测试报告。该脚本在 5,000 个文件中运行良好,但在更多文件时出现“堆内存不足”错误。
实际上,对于每个json文件,一旦我得到我需要的数据(startTime、endTime和duration),我就想释放与文件相关的内存,因为我不再需要这些变量了。
如果无法在运行时释放内存,有没有办法强制我的脚本在预先分配的内存空间内工作?我的测试后脚本需要几个小时才能完成它的工作并不重要。
【问题讨论】:
-
即时想法:通过子进程(一个子文件/请求/块)从 JSON 中提取数据,并在得到结果后终止子。不会消耗额外的内存。
标签: node.js json google-chrome-devtools out-of-memory puppeteer