Détermination indépendante de la plate-forme du nombre de cœurs d'une machine
La détermination du nombre de cœurs sur une machine peut être essentielle pour optimiser les performances logicielles. Cependant, trouver une solution indépendante de la plate-forme pour cette tâche peut s'avérer difficile.
Solution C 11
Heureusement, C 11 a introduit une méthode indépendante de la plate-forme pour identifier les principaux count :
#include <thread> const auto processor_count = std::thread::hardware_concurrency();
Cette méthode renvoie le nombre logique de cœurs, tel que rapporté par le matériel sous-jacent et le fonctionnement système.
Solutions pré-C 11
Pour les versions C antérieures à C 11, il n'existe aucun moyen portable de déterminer le nombre de cœurs. Au lieu de cela, des approches spécifiques à la plate-forme doivent être utilisées :
Windows
SYSTEM_INFO sysinfo; GetSystemInfo(&sysinfo); int numCPU = sysinfo.dwNumberOfProcessors;
Systèmes de type Unix
int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
macOS (avant 10.5)
int mib[4]; int numCPU; std::size_t len = sizeof(numCPU); /* set the mib for hw.ncpu */ mib[0] = CTL_HW; mib[1] = HW_AVAILCPU; /* get the number of CPUs from the system */ sysctl(mib, 2, &numCPU, &len, NULL, 0);
Objective-C (macOS 10.5 ou version ultérieure)
NSUInteger a = [[NSProcessInfo processInfo] processorCount];
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!