C++ प्रक्रिया के अंदर से CPU और मेमोरी खपत कैसे निर्धारित करें?
सभी को नमस्ते! मैं लगभग एक साल से C++ में कोड लिख रहा हूँ, और मुझे एक ऐसी समस्या का सामना करना पड़ा जिसने मुझे असमंजस में डाल दिया। मुझे अपने प्रोग्राम (इमेज प्रोसेसिंग सर्वर) को रियल टाइम में यह ट्रैक करने की आवश्यकता है कि वह कितनी मेमोरी और CPU खपत कर रहा है। समस्या यह है कि मैं समझ नहीं पा रहा हूँ कि प्रक्रिया के अंदर से यह डेटा कैसे प्राप्त करूँ।
उदाहरण के लिए, मैं लॉग में कुछ इस तरह आउटपुट करना चाहता हूँ: "पीक मेमोरी खपत: 150 MB, CPU लोड: 45%"। मैंने ऑब्जेक्ट्स के लिए `sizeof()` जैसे सरल वेरिएबल्स का उपयोग करने की कोशिश की, लेकिन यह वास्तविक तस्वीर नहीं देता — क्योंकि मेमोरी हीप पर आवंटित होती है, साथ ही स्टैक और सिस्टम रिसोर्सेज पर अतिरिक्त ओवरहेड भी होता है। CPU के साथ यह और भी जटिल है: मैं `clock()` का उपयोग करके कोड के एक हिस्से के निष्पादन समय को माप सकता हूँ, लेकिन यह समय केवल मेरे थ्रेड का होता है, पूरे प्रोग्राम का नहीं, और यह I/O वेटिंग टाइम को भी ध्यान में नहीं रखता।