Al usar C++ no administrado en una plataforma Windows, ¿hay una manera simple de detectar la cantidad de núcleos de procesador que tiene mi máquina host?Procesadores de recuento usando C++ en Windows
Respuesta
Puede usar GetLogicalProcessorInformation para obtener la información que necesita.
ETA:
Como se mencionó en la pregunta de un comentarista ligado a, otra manera (más fácil) para hacerlo sería a través de GetSystemInfo:
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
numCPU = sysinfo.dwNumberOfProcessors;
parece que GetLogicalProcessorInformation le daría información más detallada, pero si todo lo que necesitas es la cantidad de procesadores, GetSystemInfo probablemente funcionará bien.
Justo lo que ordena el Doctor, funciona de maravilla. ¡Gracias! –
me he dado cuenta de que hay una variable de entorno NUMBER_OF_PROCESSORS
en XP, pero no pude encontrar en el sitio de Microsoft. Creo que esta sería la forma más fácil, sin embargo.
size_t getProcessorCores()
{
DWORD process, system;
if(GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
{
int count = 0;
for(int i = 0; i < 32; i++)
if(system & (1 << i))
count++;
return count;
}
// may be we hav't PROCESS_QUERY_INFORMATION access right
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
return sysinfo.dwNumberOfProcessors;
}
size_t getAvailableProcessorCores()
{
DWORD process, system;
if(GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
{
int count = 0;
for(int i = 0; i < 32; i++)
if(process & (1 << i))
count++;
return count;
}
// may be we hav't PROCESS_QUERY_INFORMATION access right
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
return sysinfo.dwNumberOfProcessors;
}
- 1. Múltiples procesadores y PerformanceCounter C#
- 2. Recuento de archivos en un directorio usando C++
- 3. ¿GetSystemInfo (en Windows) siempre devuelve la cantidad de procesadores lógicos?
- 4. Recuento de referencias en C++
- 5. Función de suspensión en Windows, usando C
- 6. recuento usando Agrupar por LINQ
- 7. MPI ¿Número de procesadores?
- 8. Windows Azure Tables - Recuento de filas?
- 9. Detectar antivirus en Windows usando C#
- 10. Algoritmo de recuento de palabras en C#
- 11. ¿Cómo recupero la cantidad de procesadores en C/Linux?
- 12. Objetivo c: recuento de referencias
- 13. CPUID en procesadores Intel i7
- 14. Recuento de registros en C# utilizando LINQ
- 15. Desarrollo de Windows usando Objective-C
- 16. ¿cómo depurar los procesadores de anotación Java usando intellij?
- 17. Recuento de palabras ordenadas usando Hadoop MapReduce
- 18. Sistemas de negociación de baja latencia usando C++ en Windows?
- 19. Animación simple usando C#/Windows Forms
- 20. .NET SplitContainer usando C# Windows Forms
- 21. Frecuencia de recuento de palabras en documentos usando python regex
- 22. ¿Cómo obtener información de hardware en Windows usando C++?
- 23. ¿Alguna manera de apagar el "internet" en Windows usando C#?
- 24. Secciones críticas con procesadores multinúcleo
- 25. MPI: ¿núcleos o procesadores?
- 26. C# filas de recuento EPPlus OpenXML
- 27. Usando Git en Windows
- 28. Detección del número de procesadores
- 29. Procesadores de contexto vs middleware en django
- 30. Enlazar hilos a procesadores
pregunta relacionada: http://stackoverflow.com/questions/150355 – macbirdie
posible duplicado de [programación encontrar el número de núcleos en una máquina] (http://stackoverflow.com/questions/150355/programmatically- find-the-number-of-cores-on-a-machine) – sschuberth