Google已经提供了Java代码性能分析,只需以下几步便搞定:
1. 在起始处调用
Debug.startMethodTracing("file_name");
通常在onCreate的第一句,文件路径是/sdcard/file_name.trace
2. 在终止处调用
Debug.stopMethodTracing();
通常在onDestory的最后一句
3. 赋予你的程序sdcard读写权限
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.READ_EXTERNAL_STORAGE
4. 编译执行程序,会有一点点慢,然后正常结束,check sdcard。
5. 把trace文件pull到PC,用最新的DDMS monitor打开。
由此图可以看到有两个cpu时间,Incl Cpu Time 和 Excl Cpu Time。我们知道函数执行时间包括了它本身和它所调用的其他函数的执行时间。Incl 就是本身时间和其调用函数的时间之和,Excl 就是函数本身的执行时间,不包括调用其他函数的执行时间。
此外,我们还能从Children里看到调用的各个组成部分各花去了多少时间和比例,找到占用最大的,优化它!
注:土生土长的Native调用没有被统计到method profile里,method profile只统计了java调用的时间。只有那些经由JNI调用的Native才有幸被它统计进去。
阅读(3409) | 评论(1) | 转发(0) |