GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara membuat profil penggunaan memori?

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.


Linux
  1. Cara Memeriksa Penggunaan Memori Proses dengan Perintah pmap Linux

  2. Cara Memeriksa Penggunaan Memori di Server berbasis Linux

  3. Bagaimana cara melihat proses teratas yang diurutkan berdasarkan penggunaan memori yang sebenarnya?

  1. Cara mengetahui penggunaan memori pengguna di linux

  2. Bagaimana cara membatasi penggunaan memori aplikasi?

  3. Bagaimana cara mengurangi penggunaan memori ClamAV?

  1. Penggunaan Memori Linux

  2. Cara mendapatkan penggunaan CPU

  3. Bagaimana penggunaan memori dilaporkan di Linux?