起動時に大量のデータをロードするプログラムがあります。これにはかなり長い時間がかかるため、Valgrind( memcheck
) / DrMemoryの実行時にオーバーヘッドが発生します。そのため、異なる引数でプログラムを数回呼び出すと、かなりの時間がかかります
私の考えはfork()
、データ読み込みフェーズの直後に使用して、子を Valgrind/DrMemory に渡すことです。読み込みフェーズが Valgrind/DrMemory の下で実行される場合でも、オーバーヘッドは 1 回だけ発生し、すべてのfork
ed 子プロセスはそこからプリロードされたデータを使用できるはずです。
プログラムの状態を記録して汚染されていないと宣言し、後で Valgrind ( memcheck
) または DrMemory でその状態を復元することは可能ですか?
注:私は unixoid プラットフォームにのみ関心があります。Linux だけに限定しても問題ありません。