会社のPCが重い

全然訳がわからないんだが、とにかくコンパイルが遅い。それ以外の動作もたまに遅い。
ビルド時間が標準で6分くらいなんだけど、12〜20分くらいかかる。

で、本気出して原因を調べてみる。
まずは、普通に遅いという可能性。include爆発が起こってないか・・・違う、同じファイルを複数回コンパイルして、毎回時間が違う。1秒で終るときもあれば、10秒かかるときもある。
次は、ウィルス対策ソフトか何かが邪魔をしている可能性・・・判らん。少なくとも、プロセスのCPU使用率を見る限りは、ビルド関連以外のプロセスが時間を食っていることはない。パフォーマンスモニタでユーザー時間と特権時間の比率を見てみても、特権時間が目立って多いわけではない。APIで時間を食っているとしたら、ユーザー空間側の部分、CRTあたりで時間を食っている可能性はある。
ひょっとして、セキュリティとかで去年入れさせられたHDD暗号化ツールが原因か・・・いや、ちがう。あれも結局ドライバとして組み込まれているから、暗号化で時間がかかっているのなら特権時間が長くなるはず。
API MonitorでコンパイラAPI呼び出しを監視してみる・・・って、メモリの動的確保&解放多すぎだよ。どんなコンパイラ使ってやがるんだ?アプリ側でまとめて確保して、中で切り分けて使ったりはしないのか?

メモリと言えば、今年の初め、メモリを512MBから1GBに増設したのにビルドが遅くなった時期が前後している気がする。メモリ量が原因?メモリが多いとVirtualAllocにかかる時間が大きく変動して、それがコンパイル速度に影響している???
増設の時、256MB×2を他の人に譲って512MB×2を組み込んだから、増設前の構成に戻すことは出来ない。とりあえずシングルチャネルになるのは我慢して半分メモリを外してみて速度を計測するかな。

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。