NodeJs ES6 Proxy对象导致CPU100% 3分钟 假死
发布于 6 年前 作者 ipengyo 3589 次浏览 来自 问答
日志 序列化 输出一个 Proxy对象

image.png

其中的 get 方法 就是如下 这个 Proxy handler 的 get

image.png

请有经验的大大 帮忙瞧瞧呢。。。我使用这个 Proxy对象代理 是为了标记 每一次对象属性的更改操作 达到数据库最小化变化操作。

6 回复

感觉这里有问题的也就是34到38行这里。 就是这里又偏偏使用stringify,这个方法就会遍历全部的值,导致取每个属性都走handle里面的get方法. 数据一大,相当于构造了个大递归。但如果能卡3分钟,如果是这个原因,数据要多大

你打印下property,就明白了

@zy445566 我也估计是这个原因~~但是这个东西不定时的触发,可能一天就触发个一次,而且本地测试模拟 都没有触发成功。。。

@zhoumingque 嗯嗯 明白什么。。。递归吗?

@ipengyo 那还是最好确认是不是Proxy导致,之前有人就是因为正则表达式回溯导致和你表现很像的情况

你可以 debug 进去退出后,再做 cpu profile,貌似死循环发生时直接做 cpu profile 会丢失一些运行时调用栈

回到顶部