【发布时间】:2010-10-23 00:36:39
【问题描述】:
我正在将游戏移植到 Android(有很多代码,而我的代码很少),DalvikVM 正在(通过 LogCat)告诉我所有关于垃圾收集的信息。在代码中的某个时刻,我收到一条“GC 释放 x 个对象 / x 毫秒”消息流,基本上是通知我刚刚删除了大约 150,000 个对象,这需要整整一秒钟。
我想知道这些是从哪里来的!我很确定我不是故意创建那么多对象。
那么,有没有办法得到……基本上与该消息相反的信息?当任何对象创建时打印日志消息的东西?
这样我就可以跳过代码,检查生成了多少消息,并查看代码的哪些部分正在生成对象。我怀疑在循环的一部分中创建了某种形式的对象,但如果可能的话,这将是一种确定的简单方法。
如果相关,我正在使用Eclipse 3.4.2。
有什么想法吗?
【问题讨论】:
-
当你创建一个对象的新实例时,你能不记录消息吗?
-
嗯,是的,但是我想在创建 any 对象时记录一条消息。就像,甚至 Rects 或 Strings 或...任何东西。
标签: android garbage-collection debugging profiling allocation