タグ

2012年5月18日のブックマーク (2件)

  • メモリリークの確認に、タスクマネージャのワーキングセットを使ってはいけない。

    システムの開発時、メモリリークが疑われる場合最初にタスクマネージャでexeが使用しているメモリの量を確認する事が多いかと思います。 この際、Windows7のタスクマネージャでだと、メモリの使用量として「ワーキングセット(メモリ)」と、「メモリ(プライベートワーキングセット)」の2つが有りますが、ワーキングセットを見てメモリリークの判断を行ってはいけません。 (補足:XPだと、プライベートワーキングセットは、仮想メモリサイズと表記されます) なぜかというと、ワーキングセットの値は、以下の特性があり該当のexeが”今使用している”メモリ量をあらわしているわけでは無いからです。 1.ワーキングセットの値は,他のプロセスと共有しているメモリ領域のサイズが含まれている (コード領域のメモリや、共有DLLのエリアのサイズが含まれる) 2.ワーキングセットの値は,使用してないけど開放されてないメモリも

    メモリリークの確認に、タスクマネージャのワーキングセットを使ってはいけない。
    pipehead
    pipehead 2012/05/18
    > プライベートワーキングセットは、該当のプロセスが、文字通り独占的(=プライベートに)消費しているメモリ量なので、通常はこの値をウォッチするとメモリリークを判断可能です。
  • Sysinternalsのsyncコマンドでディスク・キャッシュを強制フラッシュする - @IT

    UNIXやLinuxシステムにはsyncというコマンドがあり、これを実行すると、システム上にある変更済みのディスク・キャッシュ領域(ダーティ・バッファとも呼ばれる)の内容をすべてディスクに書き出す(バッファをフラッシュする)ことができる。変更済みのディスク・キャッシュの内容はいちいちsyncコマンドを実行しなくても自動的にディスクに書き出されるが(少なくともシャットダウン前には確実にすべて書き込まれる)、そのタイミングをユーザーが積極的に制御するためのコマンドがsyncである(※)。 ※UNIXやLinuxのsyncコマンドについて UNIXやLinuxのバージョンなどにも依存するが、実際にはsyncを実行してもディスクへの書き込みが必ず行われるわけではなく、書き込み完了前にsyncコマンドは実行を終了して、シェルへ戻ってくる(のがほとんどである)。syncはコマンドというよりは、書き込み