我正在将游戏移植到 Android(有很多代码,而我的代码很少),DalvikVM 正在(通过 LogCat)告诉我所有关于垃圾收集的信息。在代码中的某个时刻,我收到一条“GC 释放 x 个对象 / x 毫秒”消息流,基本上是通知我刚刚删除了大约 150,000 个对象,这需要整整一秒钟。
我想知道这些是从哪里来的!我很确定我不是故意创建那么多对象。
那么,有没有办法得到......基本上与该消息相反?创建任何对象时打印日志消息的东西?
这样我就可以跳过代码,检查生成了多少消息,并查看代码的哪些部分正在生成对象。我怀疑在循环的一部分中创建了某种形式的对象,但如果可能的话,这将是一种确定的简单方法。
我正在使用Eclipse 3.4.2
,如果那是相关的。
有任何想法吗?