実行時に正確なメモリ使用量メトリクスを取得することは、パフォーマンスの最適化とメモリ関連の問題のデバッグにとって重要です。 。この記事では、主に仮想メモリ サイズ (VIRT) と常駐セット サイズ (RES) に焦点を当てて、C アプリケーションでメモリ使用量情報を取得するためのさまざまな方法について説明します。
getrusage() 関数を最初に使用しようとすると、提供されたコード スニペットに示されているように、多くの場合ゼロ値が取得されます。これは主に、getrusage() が特定のプロセスではなくシステム全体からリソース使用状況情報を取得するためです。
Linux システムでは、より信頼性の高いアプローチ/proc/pid ディレクトリからの情報の読み取りが含まれます。各プロセスには、さまざまな統計が保持される独自の専用ディレクトリがあります。
次のコード スニペットは、/proc/self/stat ファイルを読み取ってプロセスの仮想メモリ サイズ ( vsize) と常駐セット サイズ (rss):
void process_mem_usage(double& vm_usage, double& resident_set) { ifstream stat_stream("/proc/self/stat", ios_base::in); unsigned long vsize; long rss; stat_stream >> vsize >> rss; long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; vm_usage = vsize / 1024.0; resident_set = rss * page_size_kb; }
メイン関数呼び出しprocess_mem_usage() はメモリ使用量情報を取得し、コンソールに出力します:
int main() { double vm, rss; process_mem_usage(vm, rss); cout << "VM: " << vm << "; RSS: " << rss << endl; }
以上が実行時に C メモリの使用量を正確に監視するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。