Linux पर C++ प्रोफाइलिंग टूल्स
Linux पर C++ प्रोग्राम्स के प्रदर्शन विश्लेषण (प्रोफाइलिंग) के लिए कई शक्तिशाली टूल्स उपलब्ध हैं। यहां दो सबसे लोकप्रिय तरीके दिए गए हैं:
1. Valgrind + Callgrind + KCachegrind (सबसे व्यापक)
Valgrind एक इंस्ट्रूमेंटेशन फ्रेमवर्क है जो मेमोरी डिबगिंग, लीक डिटेक्शन और प्रोफाइलिंग प्रदान करता है। Callgrind इसका प्रोफाइलिंग टूल है।
चरण:
- डिबग सिंबल के साथ कंपाइल करें:
$ g++ -g -o my_program my_program.cpp - Callgrind के साथ चलाएं:
यह$ valgrind --tool=callgrind ./my_programcallgrind.out.<pid>फ़ाइल उत्पन्न करेगा। - परिणामों का विश्लेषण KCachegrind (GUI) के साथ करें:
$ kcachegrind callgrind.out.x
2. gprof (GCC का अंतर्निहित प्रोफाइलर)
gprof GCC टूलचेन का हिस्सा है और नमूना-आधारित प्रोफाइलिंग प्रदान करता है।
चरण:
- प्रोफाइलिंग सक्षम करके कंपाइल करें:
$ g++ -pg -g -o my_program my_program.cpp - प्रोग्राम चलाएं (यह
gmon.outउत्पन्न करेगा):$ ./my_program - रिपोर्ट देखें:
$ gprof ./my_program gmon.out > analysis.txt
अन्य उल्लेखनीय टूल्स
- perf: Linux कर्नेल का उच्च-प्रदर्शन प्रोफाइलर (हार्डवेयर काउंटर्स का उपयोग करता है)।
- Intel VTune / AMD uProf: हार्डवेयर-विशिष्ट उन्नत विश्लेषण।
- Google Benchmark: माइक्रोबेंचमार्किंग के लिए लाइब्रेरी।