我正在尝试了解 traceview 的工作原理。我试图使用 traceview 分析一种方法,但有一个关于它的查询。
我附上了 .trace 的快照。它表明大多数时间被标记为蓝色的(toplevel)占用。但是没有更多信息可用。 (这个方法什么时候执行或者执行什么功能。)
谁能给我解释一下为什么要花这么多时间?
提前致谢!
最佳答案
我今天遇到了同样的问题,试图找出“toplevel”的代码在哪里。我不是这方面的专家,但这是我认为正在发生的事情:
http://www.androidcodesearch.com/acs/source/sdk/traceview/src/com/android/traceview/DmTraceReader.java表明“toplevel”只是一个没有已知父级的 Activity 的抓包转储。
这当然对解决你的问题没有多大帮助,因为相当大一部分时间似乎都花在了“ self ”上。我建议为您正在使用的任何 android 平台(froyo、ICS 等)获取 android 源文件,并尝试四处查看可能会花费这么多时间。
顺便说一句 - 只是为了确保您知道,您可能会完全被这个痕迹误导。您的跟踪只有 7 毫秒,并且与一些花哨的类加载相关;对于此类问题,我不会相信在如此有限的时间跨度内使用 traceview,即使准确,我也无法想象您为什么担心将 7 毫秒降低到 5。
关于android - 了解跟踪 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4758071/