【发布时间】:2013-11-04 07:18:19
【问题描述】:
我正在使用sysconf( _SC_NPROCESSORS_ONLN )(我相信这是推荐的方式)来获取 CPU 内核的数量。它可以正常工作或 Mac 和 Linux,但在我的 4 核 Android 平板电脑上它返回 2。如何从本机代码获取 Android 上的实际内核数(不使用 JNI 调用 Java Android API)?
【问题讨论】:
-
您使用的是哪个 CPU 架构?而且,您检查过 Linux 吗?
-
我记得在 Android 上看到过这个错误,它在第一次调用该方法时返回活动 CPU 的数量,而不是设备上存在的 CPU 数量:code.google.com/p/android/issues/detail?id=26490
-
@rakib:ARM。检查什么?
-
是 big.LITTLE 吗?你通过 /proc/cpuinfo 找到 4 核了吗?
-
@rakib:我怀疑它是 big.LITTLE,它应该只是一个普通的 4 核 ARMv7a。我没有看/proc/cpuinfo,我只知道CPU有4个核心。如果我硬编码
4的线程数,我可以看到 100% 的 CPU 负载和适当的性能提升。
标签: android c++ linux multithreading android-ndk