Maison >développement back-end >C++ >Comment puis-je détecter le nombre de cœurs de processeur dans différents langages et environnements de programmation ?

Comment puis-je détecter le nombre de cœurs de processeur dans différents langages et environnements de programmation ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 02:25:25817parcourir

How Can I Detect the Number of CPU Cores in Different Programming Languages and Environments?

Détection du nombre de cœurs de processeur dans divers environnements de programmation

Introduction

Détermination du nombre Le nombre de cœurs sur une machine est un aspect crucial pour optimiser les performances du code et l’allocation des ressources. Bien qu'il n'existe pas de solution universelle sur toutes les plates-formes, des méthodes spécifiques à chaque plate-forme sont disponibles.

C 11 et versions ultérieures

C 11 introduit std::thread:: Fonction hardware_concurrency(), fournissant un moyen standardisé de récupérer le nombre de threads matériels. Cette méthode est recommandée pour la compatibilité multiplateforme.

#include <thread>

const auto processor_count = std::thread::hardware_concurrency();

Alternative pré-C 11

Avant C 11, les méthodes spécifiques à la plateforme sont requis.

  • Win32 :

    SYSTEM_INFO sysinfo;
    GetSystemInfo(&sysinfo);
    int numCPU = sysinfo.dwNumberOfProcessors;
  • Linux, Solaris, AIX, Mac OS X :

    int numCPU = sysconf(_SC_NPROCESSORS_ONLN);
  • FreeBSD, MacOS X, NetBSD :

    int numCPU;
    ...
    sysctl(mib, 2, &numCPU, &len, NULL, 0);

Objective-C pour Mac OS X et iOS

Objective-C propose un approche simple :

NSUInteger processorCount = [[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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn