Home > Archives > 2007年11月19日

2007年11月19日

TeX on RAMDisk その2

前の実験に使った TeX ソースでは,ソースが HDD にある場合と RAMDisk にある場合とで特に実行時間の差は見られなかった.そのため,前回の実験はソースを HDD において実行時間を計っていた.でも,ひょっとしたらソースが小さかったから差がなかったのかもしれない.ということで,もう少し大きなソースを持ってきて,pTeX のインストール先とソースの保存先とを変えつつ再実験してみた.

使った pTeX は角藤版の 2007/11/12 時点での最新バイナリ.余計なパッケージはインストールせず,ほぼ標準インストールの構成.

コンパイル対象のソースにはとある博士論文を使用.ソースは15分割くらいで,eps系の画像を55個くらいとリファレンスを250個くらい含む.コンパイル時間の計測は,metapost 9回,platex,jbibtex,platex,platex というコマンド列を全部実行した時間を計測.参考までに,TeX ソースの合計サイズが 700KB くらいで,metapost ソースの合計サイズが 160KB くらい.コンパイル時に生成されるファイル総数は75個で,内 68個が metapostの生成するファイルである.

まず,メインマシンでの結果は次のとおり(Core 2 Duo 2.4GHz, 4GB dualchannel memory (PC-6400), SATA 7200rpm HDD,Vista Business 32bit.pTeX と TeX ソースは別々のHDDにある).

pTeXTeX ソース1回目2回目3回目
RAM RAM 11.801s 11.642s 11.754s
HDD 11.947s 11.934s 11.893s
HDD RAM 12.413s 12.624s 12.383s
HDD 12.329s 12.313s 12.323s

pTeX を RAMディスク上においた場合,ソースも RAMDsik に置いたほうが 0.1 ~ 0.2 秒程度速いかもしれない.逆に,pTeX を HDD に置いたときには RAMDisk にソース置いたほうがほんの僅かに遅くなるのかもしれない.でも,いずれの場合も意識するほど意味のある差とはいえないでしょう.

続いてW7Bでの実験結果は次のとおり(Core 2 Duo 1.06GHz, 2GB dualchannel memory (PC-4200), SATA 5400rpm HDD,Vista Business 32bit.pTeX と TeX ソースは同じHDDにある).

pTeXTeX ソース1回目2回目3回目
RAM RAM 26.255s 25.724s 26.349s
RAM HDD 27.300s 26.161s 26.379s
HDD RAM 27.924s 27.191s 27.425s
HDD HDD 27.331s 27.285s 27.315s

こちらも傾向としては同じ.意識するほど意味のある差は見られない.残念.

結論:TeXソースをどこに置くかはどうでもいいんじゃないかと.

環境が変わるとどうなるかわからないけど,少なくとも自分の環境では RAMDisk においても HDD においてもコンパイル時間は変わらない.ただ,RAMDisk のほうが情報をロストする可能性が高いので,安全を考えると HDD に置いといたほうが良さげではある.

TeX on RAMDisk

RAMDisk 上に pTeX をインストールして,HDDにインストールしたものとコンパイル時間を比較してみた.

コンパイルに使ったTeXソースは9分割されており,64KBくらいでA4に14ページ(英語)ほど.ドキュメントクラスは article で,パッケージはfullpage, color, graphicx, amssymb, amsmath, cite を使用.画像は eps を6枚くらい.

コンパイル時間は,中間ファイルをすべて削除した状態から platex を3回かけた時間を time コマンドで測定(real).ls-R データベースを作った場合と作らない場合とで測定.各セットについて10回くらい走らせて平均を取った.

結果は以下のとおり.マシンはW7Bを使用(Core 2 Duo 1.06GHz, 2GB dualchannel memory (PC-4200), SATA 5400rpm HDD).

ls-R なしls-R あり
HDD7.24s4.41s
RAMDsik5.18s4.15s

とりあえず ls-R のあるなしにかかわらず RAMDisk のほうが速い.ls-R データベースがないときはRAMDiskのほうが30%程度速くそれなりに大きな差がついた気がする.でも,ls-R データベースがあると6%程度しか差が出ない上に絶対値も小さくなっているのでほとんど無視できる程度の差しか出なかった.

ちなみに,メインマシン(Core 2 Duo 2.4GHz, 4GB dualchannel memory (PC-6400), SATA 7200rpm HDD)だとRAMDisk と HDD で有意な差が出なかった.OSのディスクキャッシュが効いたのかHDDが速かったのかそれ以外なのかは不明.

結論:RAMDisk上にpTeXをインストールしてもあんまり特にならない.ls-Rデータベースを mktexlsr とかで作るほうが手間も要らずに速くなる.

まあ,OSのディスクキャッシュもあるのでリードアクセスだけのファイルを RAMDisk 上においておく事の意義はそれほどない気もする(RAMDiskのキャッシュをとられるとアホだ).やっぱ書込みの激しいキャッシュとかに使うのが正しいのでしょう.

Home > Archives > 2007年11月19日

Search
Feeds

Page Top