私は研究でプログラムを書くときは、VMwareでLinuxを起動して書いています。
本日、久しぶりにVMwareを起動したら、なぜだかやたらと遅くなっていました。
vimを使うだけなのにちょくちょく止まってしまいます。プチフリのような感じで何回も動作が止まるので作業が進まなくなってしまったのでおかしいと思い、調べてみました。
どうやら、動的にCPUの周波数を変えられる環境だと、ゲストOS のCPUクロックが早く進んだり遅く進むようになったりするらしいです。
これを改善するためにはCPUの周波数を固定してやる必要があり、初期設定ファイルconfig.iniに固定周波数などの設定を記述してやれば簡単に直るようです。
例えば、VMwareでCentOSを利用していて下記のパスにvmxファイルなどがある場合を考えます。
C:\Program Files\VMware\CentOS
このディレクトリにconfig.iniというファイルを作ります。
テキストエディタで
host.noTSC = "TRUE"
ptsc.noTSC = "TRUE"
というテキストをconfig.iniに書いて保存します。
host.cpukHzの値はマシンによると思いますが、
コントロール パネル\システムとセキュリティ\システム
で表示されるCPUの周波数(2.80GHzとか)をKHzに直して入れておけば良いと思います。
ちなみに、私はCore i7で2.80GHzだったので
2.80 * 1000000 = 2800000
を何となく少し多めにして3000000を入れておきました。
マルチコアなのでもっと多くて良いのかもしれませんが、プログラムを書くごときにそんなにリソースをがちがちに使う必要もないと思ったので、こんなもんにしておきました。
host.noTSCのTSCはTime Stamp Counterのことであれば、noTSCがTRUEなのでTime Stamp Counterをチェックしないとかそういうことなのでしょうか。
その辺は素人なのでよくわかりませんが、とりあえず、これでVMware上での動作は無事に普通に動くようになったので良かったです。