如何在dart应用程序中分析内存使用情况?

时间:2014-05-11 01:17:29

标签: memory-management memory-leaks dart google-chrome-devtools

我有this测试应用,用于查看我的dart应用的内存配置文件。当您单击左上角的“新客户端”按钮时,它将模拟浏览到主机的新客户端。主机生成一个新的应用程序会话,在这种情况下,它是一个简单的应用程序,可以创建或删除Massive个对象。大量对象存在于主机上,蓝色方块是Massive对象的客户端表示。我希望如果我创建了一堆Massive个对象,然后将它们全部删除,沿途捕获堆快照,我应该看到内存使用量随着Massive对象数量的增加而增加,然后减少为最终会对Massive个对象进行垃圾回收,每5秒运行一次远程垃圾收集,从而释放主机端的实际Massive对象,这样它就可以自由地让实际的VM垃圾收集器清除掉

我一直在尝试使用Chrome开发工具来查看堆分配,因为我创建了多个客户端并在其上处理了MassiveView。但我根本没有看到任何东西,创建一个新的Massive对象我看到内存分配的峰值但是在释放对象之后我没有看到任何内存使用率下降的迹象,但我不知道我知道我是否使用了开发工具错误或者我的框架是否只是错误。是否可以在Chrome开发工具中看到持续的内存分配?

1 个答案:

答案 0 :(得分:3)

用于JavaScript应用程序的普通内存视图不适用于Dart。

您可以使用"堆配置文件"达特天文台的选项。它是DartVM的内置功能。如果您使用Dartium,您可以通过DevTools访问它,有一个名为" Observatory"的选项卡。

但它也适用于独立的DartVM。您有一个命令行选项来激活它,或者如果您使用的是Dart编辑器,则可以在应用程序的启动配置中激活它。

Dart Observatory自1.4版的开发版版本以来并不是completely finished,您可能需要升级。目前还没有可用的文档。