Gunakan massif, yang merupakan bagian dari alat Valgrind. massif-visualizer dapat membantu Anda membuat grafik data atau Anda dapat menggunakan ms_print
perintah.
Cobalah profiler heap yang dikirimkan dengan gperftools, oleh Google. Saya selalu membuatnya dari sumber, tetapi tersedia sebagai paket yang telah dikompilasi di beberapa distro Linux.
Penggunaannya semudah menautkan pustaka dinamis ke file yang dapat dieksekusi dan menjalankan program. Itu mengumpulkan informasi tentang setiap alokasi memori dinamis (sejauh yang saya lihat) dan menyimpan ke disk memory dump setiap kali salah satu dari hal berikut terjadi:
HEAP_PROFILE_ALLOCATION_INTERVAL
byte telah dialokasikan oleh program (default:1Gb)- tanda penggunaan memori air tinggi meningkat sebesar
HEAP_PROFILE_INUSE_INTERVAL
byte (default:100Mb) HEAP_PROFILE_TIME_INTERVAL
detik telah berlalu (default:tidak aktif)- Anda secara eksplisit memanggil
HeapProfilerDump()
dari kode Anda
Yang terakhir, menurut pengalaman saya, adalah yang paling berguna karena Anda dapat mengontrol dengan tepat kapan harus mengambil snapshot dari penggunaan heap lalu bandingkan dua snapshot yang berbeda dan lihat apa yang salah.
Terakhir, ada beberapa kemungkinan format keluaran, seperti tekstual atau grafik (dalam bentuk grafik berarah):
Dengan menggunakan alat ini, saya dapat menemukan penggunaan memori yang salah yang tidak dapat saya temukan menggunakan Massif.