Я пишу маленькое приложение C, которые используют некоторые потоки для обработки данных. Я хочу смочь знать количество процессоров на определенной машине, не используя систему () и в комбинации к маленькому сценарию.
Единственным путем я могу думать, должен проанализировать/proc/cpuinfo. Какие-либо другие полезные предложения?
Ниже приведен код, который я использовал для вычисления количества ядер ... он может вам помочь
//Finding the number of cores(logical processor) using cpuid instruction.....
__asm
{
mov eax,01h //01h is for getting number of cores present in the processor
cpuid
mov t,ebx
}
(t >> 16) & 0xff содержит количество ядер ........
Думаю, это может вам помочь http://lists.gnu.org/archive/html/autoconf/2002-08/msg00126.html
machine:/sys/devices/system/cpu$ ls
cpu0 cpu3 cpu6 kernel_max perf_counters sched_mc_power_savings
cpu1 cpu4 cpu7 offline possible
cpu2 cpu5 cpuidle online present
Если у вас есть машина с sysfs, возьмите загляните в / sys / devices / system / cpu.
Убедитесь, что вы запрашиваете то, что вам нужно - процессоры, ядра, гиперпотоки и т. Д.