我知道你们大多数人都会向我指出chrome profiler heap snapshot
,但是在空页面上(没有js没有css,只有html>body)它显示8mb堆大小和12到30000个对象取决于他的心情,所以对于这个任务来说它是完全无用的工具,我认为这个堆分析器有它自己的尽管其他 Chrome 开发工具都很棒,但对它所显示的数据而不是事实的看法是卑鄙的。
基本上我的骨干 1page 应用程序在内存中不断增长,即使我正在做所有可能的垃圾收集舞蹈,JSON.stringify(Obj).length
throws action not secure
在大多数物体上,我如何能够比反复试验更容易地追踪那些僵尸。
你不喜欢 Chrome 开发者工具,但据我所知,它们是你拥有的最好的工具。你只需要明智地使用它们。
假设您想测试应用程序中的某些操作是否泄漏内存。它可能是视图的渲染,或者获取一些新数据。我们称其为Action
.
为了找出保留了多少内存,以及保留了多少内存,首先需要获得可测量的基线,并消除噪声。您需要三个步骤来实现这些目标。
-
Warm-up
启动您的应用程序(导航到您的网站)。履行Action
。拍摄堆快照。该快照将被丢弃,但它会运行 GC 并为您提供一个干净的状态。预热还确保您的可测量数据不会出现任何模糊:脚本评估、初始加载资源异步等。
-
Baseline
Perform Action
三次。拍摄堆快照。这是我们比较内存保留和保留的基线。我们做的是Action
三次以获得合理的平均值,以防执行路径中存在一些小的变化。确保尝试重复Action
每次都以完全相同的方式。
-
测量
Perform Action
三次。拍摄堆快照。
现在您将拥有三个快照。第一个将被丢弃,但对我们来说有趣的是Summary for 在快照 2 和 3 之间分配的对象,以及三角洲比较从快照 3 到快照 2。您可以从“配置文件”视图的底部/状态栏找到这些视图。
您在之间看到的数据Baseline and 测量shapshots 是真实的内存配置文件Action
。之后,您只需要知道如何正确解释数据即可。为此我推荐Google 关于分析器的文档 https://developers.google.com/chrome-developer-tools/docs/heap-profiling.
我认为目前还没有更好的工具或方法。如果有的话,我很想听听。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)