Category

開発環境を快適に!

今回は、ごくごく個人的な事です。実は、いま使っている開発マシンがちょっと遅すぎるんじゃないか?と常々感じていたのです。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が、本当にリアルタイムで動いているのか?オシロスコープを使用して確かめてみることにします。