Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mendapatkan Kembali Penggunaan Memori Masa Jalan Program C dengan Tepat di Linux?
Mendapatkan semula Penggunaan Memori Runtime dalam C dengan /proc/pid
Dalam C , mendapatkan maklumat tentang penggunaan memori program semasa runtime boleh menjadi mencabar . Walaupun percubaan menggunakan getrusage(), poster secara konsisten menemui nilai sifar. Pendekatan alternatif wujud yang melibatkan pertanyaan fail dalam direktori /proc/pid.
Pada sistem Linux, /proc/pid mengandungi maklumat khusus proses, termasuk penggunaan memori. Salah satu fail yang paling boleh dipercayai untuk tujuan ini ialah /proc/self/stat. Dengan menghuraikan fail ini, kami boleh mengekstrak medan berikut:
Untuk mendapatkan semula nilai ini, kita boleh menggunakan process_mem_usage() function:
void process_mem_usage(double& vm_usage, double& resident_set) { // Parse /proc/self/stat ifstream stat_stream("/proc/self/stat"); stat_stream >> ... >> vsize >> rss; stat_stream.close(); // Convert to KB long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; vm_usage = vsize / 1024.0; resident_set = rss * page_size_kb; }
Dalam fungsi utama() kami, kami boleh menggunakan process_mem_usage() untuk mencetak penggunaan memori maya dan saiz set pemastautin:
int main() { double vm, rss; process_mem_usage(vm, rss); cout << "VM: " << vm << "; RSS: " << rss << endl; }
Menggunakan pendekatan ini , kami boleh mendapatkan maklumat penggunaan memori program semasa dengan tepat pada masa jalan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Kembali Penggunaan Memori Masa Jalan Program C dengan Tepat di Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!