C++ में प्रोसेसर कोर की संख्या प्रोग्रामेटिक रूप से कैसे निर्धारित करें (क्रॉस-प्लेटफ़ॉर्म समाधान)?
सभी को नमस्ते! मैं C++ में इमेज प्रोसेसिंग के लिए एक मल्टीथ्रेडेड एप्लिकेशन लिख रहा हूँ। मैं चाहता हूँ कि प्रोग्राम उपयोगकर्ता के हार्डवेयर के आधार पर स्वचालित रूप से थ्रेड्स की इष्टतम संख्या निर्धारित करे। समस्या यह है कि इसे Windows और Linux दोनों पर काम करना है।
मैंने मैक्रोज़ और सिस्टम API कॉल का उपयोग करने की कोशिश की, लेकिन यह एक तरह का चिड़ियाघर बन गया:
```cpp
#ifdef _WIN32
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
int cores = sysinfo.dwNumberOfProcessors;
#elif __linux__
int cores = sysconf(_SC_NPROCESSORS_ONLN);
#else
int cores = 1; // fallback
#endif
```
यह काम करता है, लेकिन कोड बहुत बुरा दिखता है। साथ ही, मैंने पढ़ा है कि कुछ Hyper-Threading वाले प्रोसेसर पर `dwNumberOfProcessors` लॉजिकल कोर लौटाता है, न कि फिजिकल कोर। और मुझे फिजिकल कोर की संख्या चाहिए, ताकि