我知道大多数人都会指向chrome profiler heap snapshot
,但是在空白页面上(没有js没有css只是html>正文)它显示8mb堆大小和12到3万个对象取决于他的心情,所以对于这个任务来说,它是完全没用的工具,我认为这个堆分析器对它显示的数据有自己的拙见,而不是事实,尽管其他的chrome dev工具都很棒。
基本上我的骨干1page应用程序在内存中不断增长,即使我正在进行所有可能的垃圾收集舞蹈,JSON.stringify(Obj).length
在大多数对象上抛出action not secure
,我如何能够更轻松地追踪那些僵尸反复试验。
答案 0 :(得分:6)
您解散了Chrome开发者工具,但就我所知,它们是您获得的最佳选择。你必须明智地使用它们。
假设您要测试应用程序中的某些操作是否会泄漏内存。它可以是渲染视图,也可以获取一些新数据。我们称之为 Action
。
为了找出保留多少内存以及保留多少内存,首先需要获得可测量的基线,并消除噪声。你需要三个步骤来实现这些目标。
<强>预热强>
启动您的应用程序(导航到您的网站)。执行 Action
。拍摄快照。这个快照被丢弃了,但是它会运行GC并为你提供一个清晰的平台。预热还可以确保您不会对可测量的数据进行任何模糊测试:脚本评估,初始加载资源异步等。
<强>基线强>
执行 Action
三次。拍摄快照。这是我们比较记忆切除和保留的基线。我们执行 Action
三次以获得合理的平均值,以防执行路径中出现一些小的变化。确保每次尝试以完全相同的方式重复 Action
。
<强>测量强>
执行 Action
三次。拍摄快照。
现在你将有三个快照。第一个将被丢弃,但对我们来说有趣的是摘要 快照2和3之间分配的对象,以及delta 比较从快照3到快照2.您可以从“个人档案”视图的底部/状态栏中找到这些视图。
您在基线和测量 shapshots之间看到的数据是 Action
的真实内存配置文件。之后,您只需要知道如何正确解释数据。为此,我建议Google's documentation on the profiler。
我认为此时不存在更好的工具或方法。如果有,我很乐意听到它。