我刚刚完成了JavaScript应用程序的测试,我第一次使用Jasmine。一切正常,但我仍然需要测试应用程序是否有内存泄漏。甚至可以在我的规格中以编程方式检查它吗?也许还有一些额外的库?
答案 0 :(得分:2)
Chrome具有window.performance API的非标准扩展 - (window.performance.memory),您可以在其中衡量内存使用情况。
为了启用精确的内存统计信息,您必须使用此标志:--enable-precise-memory-info
但您还需要强制GC判断测试后是否保留内存。因为CG不会立即发生。
使用Chromium浏览器,您可以使用特殊命令标志运行它以公开强制GC的方法:
chromium-browser --js-flags='--expose_gc'
这使您可以访问方法window.gc()
。
答案 1 :(得分:1)
据我所知,没有自动查找javascript内存泄漏源的方法。 Javascript内存泄漏真是令人讨厌的事情,你可以浪费很多时间。最近,我开发了一个非常大的企业Web解决方案作为单页面应用程序,具有近1mb的最小化自编代码。突然间,我们意识到我们的应用程序正在严重泄漏。我尝试了数百种技术来找到内存泄漏的来源,对我来说最简单的方法是使用google chrome profiler
,获取堆快照并比较不同的堆快照。以下是更多信息:
https://developer.chrome.com/devtools/docs/javascript-memory-profiling
在您的应用中有一个很好的调试内存泄漏的一周,希望在我的情况下花费更少的时间。 :)