12

На Linux, как сказать, сколько ядер машины активно? Я предполагаю, что тест для этого будет работать для Android тоже. Мне нужно знать, активно ли более одного ядра. Хотелось проверить это, создав процесс, создающий много потоков. Возможно ли для потока запросить, на каком процессоре он работает? таким образом, можно определить, будут ли когда-либо использоваться несколько ядер под большой нагрузкой. Не уверен, что я на правильном пути.

5 ответов5

17

Вы можете использовать top чтобы перечислить использование каждого ядра. Нажмите 1, если необходимо, чтобы разделить строку ЦП на отдельный ряд для каждого ядра.

Вы также можете добавить столбец, который показывает последнее использованное ядро для каждого процесса. Нажмите f, чтобы открыть список полей, затем j, чтобы активировать столбец "P". Затем нажмите пробел, чтобы вернуться к просмотру в реальном времени.

6

ps есть поле с именем psr которое сообщает вам, на каком процессоре выполняется задание.

Таким образом, вы можете использовать что-то вроде:

ps -e -o psr= | sort | uniq | wc -l

Обратите внимание, что простое выполнение ps как это, конечно, сделает по крайней мере одно ядро активным.

Вероятно, лучше запустить это:

tmp=/tmp/ps.$$
ps -e -o psr= > /tmp/ps.$$
sort -u "$tmp" | wc -l
rm "$tmp"

таким образом sort и wc не увеличивают количество.

2
htop

Эта команда хорошо работает как в Ubuntu, так и в Centos и графически показывает, сколько процессоров и как они используются.

для сентос:

yum install htop

для убунту:

apt-get install htop
2

Попробуйте следующее:

cat /proc/cpuinfo

Вот ссылка на пример Android Java.

0

Вы можете использовать cat /sys /devices /system /cpu / возможный или cat /sys /devices /system /cpu / online. В основном это возможно, если у вас есть отдельный процессор для запуска какой-то конкретной программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .