開発環境を快適に!
今回は、ごくごく個人的な事です。実は、いま使っている開発マシンがちょっと遅すぎるんじゃないか?と常々感じていたのです。CPUはそこそこなのですが、とにかくディスクアクセスが遅い!という訳で、SSDの導入、メモリの大量増設、の2つでもってスピードアップを図ってみました。結論から言いますと、メモリの大量増設、これはすごくオススメです!
さて、私はソフトウェア開発を行う際には、Webブラウザ、Word、Excel、Visual Studio、MATLAB/Simulinkなど、沢山のアプリを起動しています。普通に動かしている分には良いのですが、しばらく見ていなかったアプリを前面に持ってきた時が最悪です。ずーーっとディスクアクセスを行っていて、ただアプリを前面に表示するだけなのに30秒くらい待たされたりします。
そこで、2つのアプローチを取る事にしてみました。
・SSDの導入 ⇒ 極端には遅くならないようにする!
・RAMディスクの導入 ⇒ HDDよりも高速動作!
ちなみに、対策前のPCのスペックは、次のような感じです。
・Intel Core2 Quad Q6600 2.4GHz
・1.6GHzの 2.0GB RAM (800MHzをDual Channelで使用)
・HDD: Hitachiの HDT725025VLA380 (後述しますが、このHDD自体は決して悪くありません)
・Windows XP SP2 32ビット版
SSDの導入
まずは、HDDアクセススピードを「極端には遅くしない」ための対策を行う事にしました。
使用したのは、A-DATA社のS592。128GBで3万円ちょっとの品物でした。2.5インチということでデスクトップPC用ではありませんが、大丈夫。SATA2インタフェースさえあればデスクトップでも使えます。
SSDの特徴としては、次のようなものがあるようです。
・長所:ランダムアクセスに強い
・短所:書き込み回数には制限がある
ですから、
・メインのHDD ⇒ OS本体、および頻繁に読み書きするもの
・SSD ⇒ おもに読みこむだけのもの
という構成が良いかと思われます。少なくとも、これまでHDDだけで賄ってきた処理を、HDDとSSDに負荷分担できます。それだけでも価値がありそうです。
というわけで、SSDには、次の物を入れてみました。
・Visual Studio2005および、アドオン開発ツール群
・Office 2007 (Word、Excel、Powerpoint)
この状態で、2日ほどマシンを使用してみましたが・・・正直、あまり変わりませんでした。Visual Studio、Word、Excelなどの起動時間は相変わらずです。。。
SSDそのものは決して悪いものではないはずです。しかし、どうやら私の悩みの原因は、ここではなかったようです。もともと付いていたHDDも、決して悪いわけではなかったのでしょう。
メモリの大量増設
次に、メモリを増設してみました。増設前のメインメモリは2GBです。これは、決して少なくはありません。しかし、力任せに問題をとくプログラムを作成したときは、時折使いきってしまう事があります。
そこで、2GBから8GBへと増設することにしました。8GB買っても送料、代引き手数料こみで1万円ちょっと、という大変おやすい買い物でした。
しかし残念な事に、WindowsXPの32ビット版では、3GBちょっとしか認識できません。Windowsの64ビット版だと、8GB全て認識できます。しかし、64ビット版ではDOSアプリが動きません。マイコン系のツールだと、いまだにシリアルポートだのパラレルポートだのを直接操作するDOSアプリが現役です。これらが使えなくなってしまうのは痛いため、64ビットへの移行は却下です。
そこで、Gavotte_RAMDiskというツールを使用する事にしました。この素晴らしいツールは、OSが認識できないRAMを、RAMディスク化してくれるものです。このRAMディスクは、OS起動時にFAT32として認識されます。NTFSとして使いたい場合にはフォーマットしなおす必要がありますが、そうでなければ何もしなくても構いません。
このツールをインストールした結果、システムは次のようになりました。
・メインメモリ:3.25GB
・RAMディスク: 4.74GB
そして、このRAMディスクを次のような用途で使うようにしました。
・仮想メモリ配置 2GB固定長のページファイルを置きました
・テンポラリファイル 環境変数のTEMP、TMPを書き変えて、テンポラリをRAMディスクにします
・インターネットキャッシュファイル置き場
その結果・・・非常に快適になりました!
最小化していたアプリを開くとき、30秒も待たされることはありません。いつも一瞬で開きます。
Google Chromeを使用していると、表示はされているのになかなか操作できない・・・HDDランプをみると激しく点滅している・・・という事がありましたが、これも解消です。すぐに表示され、すぐに操作できます。
メインではSleipnirというブラウザを使用しているのですが、インターネットキャッシュがRAMドライブに移動したことによって、Webブラウジングがサクサク動くようになりました。たぶん、実際の時間としては大して変わっていないのでしょうが、これは体感できます。そして、結構気持ちがいいです!
自宅から、SSH経由でもって事務所のPCにリモートログインする事があります。Windowsのリモートデスクトップは良く出来ていて、ローカルにあるのと同じようにリモートマシンを扱えます。VNCと違い日本語入力も全然問題がないため、重宝しています。以前は、リモートログインをしてから5分くらは反応がありませんでした。きっと激しくHDDアクセスしているんだろうなぁ・・・と思いつつも放置していたものです。しかし、メモリ増設後はそんな事はありません。リモートログインすると、すぐに全てのアプリが使用可能になります。どのアプリを開いても、ひょいひょいと動いてくれます。本当に、ローカルマシンと見分けがつかないくらい快適です。
なお、あんまり効果がなかった分野もあります。
VC++でのコンパイル速度は、あまり変わりません。
ソースコードの静的解析や、ユニットテストを走らせる時のスピードも、あまり変わりません。ユニットテストは、流行っているCppUnitではなく、C++testという有償ツールを使っています。以前はCppUnitを使用していましたが、C++testを使用してからはもう後戻りができません。ユニットテストを作るのがとにかく楽!しかもテスト実行後にコードカバレッジの解析まで出来る!と、非常に気に入っています。ただし、ユニットテストの実行に結構時間がかかってしまうのです・・・
これらは、予想通りCPUの演算速度がボトルネックになっているため、今回の増設によるメリットはありませんでした。ただ、こころなし速くなったような気はします。気のせいかも?という程度ですが。
おまけ
開発マシンのスピードとは別に、1つ悩みがありました。それは蚊です。あの、血を吸う代わりに毒をくれるイヤーなやつです。
そこで、ナイス蚊っちというものを買って来ました。これは、ラケットのような形をしていて、高圧電流が流れます。これでもって蚊やハエをバシっと叩くと、バチバチ!と火花が飛んで蚊が焼け落ちます。
気持ちよく仕事をしているときに、蚊がまわりをウロウロしていると、イラっと来ます。そんなときは、このナイス蚊っちでもってバシっと一撃!蚊がいなくなるだけではなく、「やっつけている感」というものがあって、とっても気分がいいです!ヨメさんもこれは結構気に入っている様子で、もっとやっつけたい!とウズウズしているようです。
メモリ増量とナイス蚊っち、この2つで、開発環境がずいぶん快適になりました。
次回
次回は、FreeHILSに戻ります。RTAI-Labが、本当にリアルタイムで動いているのか?オシロスコープを使用して確かめてみることにします。