2008年01月29日
川俣晶の縁側ソフトウェア技術雑記 total 3667 count

やっと分かってきた・OneCareのチューンナップが(私のマシンでは)遅い意外な理由!?

Written By: 川俣 晶連絡先

 OneCareのチューンナップがいつまでも終わらず、システムが重くなっていく現象は、無駄にハンドルをガバガバ確保してシステムに過剰な負担を掛けるのはどいつだ!?にて書いた通り、「KB933245 その Windows Media Player 11 が Windows Vista でのオーディオ ファイルを再生する度、 Lsm.exe のハンドル リークが発生することがあります。」の問題が原因であることが分かりました。しかし、これは「重くなる」理由だけを説明するものであり、数日間という長時間を要する理由ではありませんでした。

 重くなる理由を除外して(MP3再生はVirtual PCで稼働させたWin2K仮想マシン上で実行し、ハンドルが増えないことを確認しつつ)、OneCareのチューンナップを実行したところ、途中から進行の%がほとんど進まない状況に突入しました。1日も掛からないで終わりそう……という予感は裏切られました。

時間が掛かる真の理由 §

 進行状況を見ていると、以下のような状態に陥っているように思えます。

  • 自分のマシン上には受信したメールを丸ごと保存したファイルのバックアップがいくつもあった
  • これらは1つの巨大なファイルに多数のメールが詰め込まれる形式だった (1ファイルに最大1万通近いメールのファイルが含まれる)
  • OneCareのチューンナップは、このようなファイルから問題メールを発見すると、その部分だけを除去しようとするらしいが、ファイルが巨大であるとその処理が重い
  • 1つの巨大ファイルにいくつもの除去すべきメールがあると、1メールごとにその重い処理が繰り返される
  • 結果として1つのファイルの処理に数十分を要することも珍しくなく、スキャンの進行状況の%がほとんど進まなくなる
  • しかし、停止しているわけではなく、非常にスローペースで処理は進行している

対策 §

 とりあえず、その手のファイルが入ったフォルダをスキャン対象から除外……でしょうかね。

 そのやり方で試してみましょう。