【发布时间】:2011-05-18 18:03:48
【问题描述】:
我正在使用日志原生代码在 Android 上开发一个相当大的软件,它现在可以运行,但存在一些性能问题。
我希望我可以在几款真正的安卓手机上分析软件的每个模块(函数调用)的 CPU 周期、内存使用情况等。是否有一个简单的 c 库可以做到这一点?
我看到有人在使用 oprofile,这对我来说似乎有点过头了,因为它是一个系统狂野的分析器,它需要重建内核和系统映像。
由于我拥有我的应用程序的完整源代码,我真正需要的是一个简单的 c 库,我可以将它嵌入到我的代码中,以便在应用程序运行多个测试用例时进行一些分析。
顺便说一句,Linux 的做法是什么?
【问题讨论】:
-
你能在调试器下运行应用程序吗?那你可以手动中断暂停吗?然后您可以使用随机暂停方法来查找性能问题。 stackoverflow.com/questions/375913/…
-
NDK 调试器支持仅在 froyo 中可用,另外,如果我想在几部不同的手机上运行分析,我可以使用系统方式。
-
ndk-gdb 可用,并且当您按 ctrl-C 时应该能够为您提供堆栈跟踪。这不是为了衡量性能。它旨在找到要优化的代码以提高性能。测量不会发现问题,但发现并解决问题确实会改进测量,无论平台如何。 (我知道人们通常不会这么想,但这是让代码快速运行的方法。)
-
我相信在 Linux 中你需要编译和链接
-p或-pg以启用分析。
标签: android profiling android-ndk