你对 Chrome 开发者工具不屑一顾,但据我所知,它们是你得到的最好的。你只需要明智地使用它们。
假设您想测试应用程序中的某些操作是否会泄漏内存。它可能是视图的呈现,或获取一些新数据。让我们称之为Action
.
为了找出保留了多少内存,保留了多少,首先您需要获得一个可测量的基线,并消除噪音。您需要三个步骤来实现这些目标。
暖身
启动您的应用程序(导航到您的网站)。执行Action
。拍摄堆快照。此快照已被丢弃,但它会运行 GC 并为您提供一个全新的状态。热身还确保您不会对可测量的数据产生任何模糊:脚本评估、初始加载资源异步等。
基线
执行Action
三遍。拍摄堆快照。这是我们将比较我们的内存保留和保留的基线。如果执行路径中存在一些小的可变性,我们会执行Action
3 次以获得合理的平均值。Action
确保每次都尝试以完全相同的方式重复。
测量
执行Action
三遍。拍摄堆快照。
现在您将拥有三个快照。第一个将被丢弃,但对我们来说有趣的是在快照 2 和 3 之间分配的对象的摘要,以及从快照 3 到快照 2 的增量比较。您可以从 Profiles 的底部/状态栏中找到这些视图看法。
您在基线和测量快照之间看到的数据是真正的内存配置文件Action
。之后,您只需要知道如何正确解释数据。为此,我推荐Google 关于 profiler 的文档。
我认为目前不存在更好的工具或方法。如果有的话,我很想听听。