cenfun / monocart-reporter

A playwright test reporter (Node.js)
https://cenfun.github.io/monocart-reporter/
MIT License
194 stars 11 forks source link

[Feature] 调用add添加数据时进行实时Merge #134

Closed fanksy closed 2 months ago

fanksy commented 2 months ago

需求背景: 在持续测试的模式下,需要持续搜集数据,并尽可能缓存数据,一方面确保数据不丢失,另一方面方便观察历史数据排查问题。但是.cache缓存文件数据过多,会导致CPU内存消耗很大。

功能建议: 在调用add添加数据时,实时进行merge成单个覆盖率数据文件

cenfun commented 2 months ago

实时进行merge可能不大行,因为add本身是异步的并行的,不好控制merge时机,然后就是merge也消耗时间影响正常测试,而且可能做太多的无用功,最后一起merge就不存在这个问题

能提供目前cache文件的数量有多少吗,每个大概多大?

CPU没什么好说的,基本就是没法控制的,都是有多少用多少。

内存的话之前修正过一次,不知道你用的是不是最新版的MCR 之前遇到的case差不多有几百个覆盖率文件,但测试了挺快的,内存并没有消耗太多 https://github.com/cenfun/monocart-coverage-reports/actions/runs/9917255166/job/27400525834

如果依旧爆内存,可以试试开启额外内存限制

NODE_OPTIONS: --max-old-space-size=4096

如果4g不够,可以试试8g (NODE_OPTIONS: --max-old-space-size=8192)

https://nodejs.org/docs/latest/api/cli.html#--max-old-space-sizesize-in-megabytes

fanksy commented 1 month ago

抱歉,才看到,发错项目了,在coverage那个项目回复你