所以就像在 Linux on Intel 处理器中一样,我们有大量的硬件性能计数器可以访问。像以前一样,使用名为 perfmon2 的用户空间软件,我可以获得缓存未命中率、由于某种原因(例如,L1 缓存未命中)导致的 CPU 停顿周期等值。
我的问题是,我们在 Android 中有这些东西吗?由于它基于 ARM,我认为我们没有像 x86 中那样强大的性能监视器计数器支持,对吗?
最佳答案
ARM11 和 Cortex-A/R 确实有硬件性能计数器。您可以在该页面的 ARM 官方网站上查看:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka4237.html
由于 Android 也在 Linux 之上运行,您可以通过“Perf Events”子系统通过用户空间软件访问性能计数器。但是,您需要编写 native C 代码,其中包括“perf_event.h”并使用 Android NDK 构建它。在开始编写代码之前,我建议您看一下这个项目:platform/external/linux-tools-perf ( https://android.googlesource.com/platform/external/linux-tools-perf/ ),它可能正是您要找的。我不知道是否有任何替代方案可以直接从 Java 代码执行此操作。
关于android - Android(在 ARM 上)是否有硬件性能计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13729717/