Linux-এ C++ প্রোগ্রাম প্রোফাইল করার জনপ্রিয় টুলগুলো:
১. Valgrind + Callgrind (সবচেয়ে জনপ্রিয়)
$ g++ -g -O2 hello.cpp -o hello $ valgrind --tool=callgrind ./hello # আউটপুট: callgrind.out.$ kcachegrind callgrind.out. # GUI ভিউয়ার
callgrind ফাংশন কল গ্রাফ, ইনস্ট্রাকশন কাউন্ট, ক্যাশে মিস ইত্যাদি দেখায়।
২. gprof (GCC Built-in)
$ g++ -pg -g -O2 hello.cpp -o hello $ ./hello $ gprof ./hello gmon.out > analysis.txt
-pg কম্পাইল টাইমে দিতে হয়। ফাংশন-লেভেল টাইমিং, কল কাউন্ট দেখায়।
৩. perf (Linux Kernel Tool - Hardware Counters)
$ g++ -g -O2 hello.cpp -o hello $ perf record -g ./hello $ perf report
হার্ডওয়্যার পারফরম্যান্স কাউন্টার (CPU সাইকেল, ক্যাশে মিস, ব্রাঞ্চ মিসপ্রিডিকশন) ব্যবহার করে। সিস্টেম-ওয়াইড প্রোফাইলিংও সম্ভব।
৪. Intel VTune / AMD uProf
ভেন্ডর-স্পেসিফিক এডভান্সড প্রোফাইলার (GUI, হটস্পট অ্যানালিসিস, থ্রেডিং অ্যানালিসিস)।
সুপারিশ: দ্রুত ফাংশন-লেভেল অনুমানের জন্য gprof বা perf। ডিটেইলড কল গ্রাফ এবং ক্যাশে অ্যানালিসিসের জন্য valgrind/callgrind। প্রোডাকশন/হার্ডওয়্যার-লেভেল অ্যানালিসিসের জন্য perf বা VTune।