Javascript 这是js堆图吗?我怎样才能修好它?
我已经记录了angular 4.4应用程序的性能,我认为Chrome开发工具给我的关于js堆的反馈可能令人担忧,但老实说,我在这个问题上缺乏 我不明白~20000ms处的直线下降、之后不久的直线下降和~60000ms处的另一个下降:这是由于什么原因?这些行为是正常的还是意味着某些事情应该得到纠正Javascript 这是js堆图吗?我怎样才能修好它?,javascript,google-chrome,google-chrome-devtools,Javascript,Google Chrome,Google Chrome Devtools,我已经记录了angular 4.4应用程序的性能,我认为Chrome开发工具给我的关于js堆的反馈可能令人担忧,但老实说,我在这个问题上缺乏 我不明白~20000ms处的直线下降、之后不久的直线下降和~60000ms处的另一个下降:这是由于什么原因?这些行为是正常的还是意味着某些事情应该得到纠正 倾斜意味着页面正在JS堆中分配内存。这是正常的 删除意味着浏览器释放了JS堆中不再需要的内存。这称为垃圾收集。这也很正常。这没什么可怕的 通常,如果在每次垃圾收集事件之后看到内存总量逐渐增加,那么这就是
倾斜意味着页面正在JS堆中分配内存。这是正常的 删除意味着浏览器释放了JS堆中不再需要的内存。这称为垃圾收集。这也很正常。这没什么可怕的 通常,如果在每次垃圾收集事件之后看到内存总量逐渐增加,那么这就是内存泄漏的警告信号。内存泄漏模式通常如下所示: 从图中可以看出,如果让页面运行足够长的时间,最终会耗尽计算机的所有内存,导致计算机运行缓慢或崩溃
有关分析内存使用情况的更多技术,请参阅。什么特别让您担心?在~20000ms时的下降,不久之后的街灯线,以及随后的增加让我担心。你知道这是因为什么吗?从OP提供的图像来看,似乎是基于计时器调用了一个过程?当程序被调用时,进程开始。仍然不确定为什么你自己的代码会让你感到不安?您应该比图像的查看者更清楚代码中发生了什么。请参阅,在的范围内更深入地了解stop the world和V8事件循环…因此,实际上不可能判断这是否是一个问题。下降仅仅意味着分配了一定内存量的任务完成,并且释放了该内存。如果在任务结束前需要所有的内存,这是非常好的,但它也可能表明您有一个在整个时间内保留某些对象/内存的闭包,即使您不再使用它。非常感谢,这非常清晰方便。标记