起動中のデ−タ量とページングファイル


 昨今のハードウェアの高速化と大容量化により、データ量的に巨大なワーク(被切削材)を扱うケースが 増えてきています。
 TRYCUT2000(32bit)ではLARGE ADDRESS対応を既に行っており、64bit版の TRYCUT3000(x64版)もリリース開始いたしましたが、ギガバイトクラスの大容量の データを扱う場合は、環境の限界を考慮しておく必要があります。
 本ページは、TRYCUTが起動中に確保しているデータの中で、ほぼ大半を占める被切削材データ用 作業空間サイズ(目安)ページングファイルについて概説します。


[起動中のメモリ確保]

 現在TRYCUTでは、ひとつのZ格子あたり 18バイト(Z高さ2枚、投影位置座標、NCブロック検索用データ、ペン番号、切削方向情報、ペンキ 情報など)の情報量をメモリに確保して動作しています。
 仮に1辺1メートルの正方形で被切削材の精度(格子ピッチ)1.0mmのワークを定義したとすると、

1,000(X方向格子数) x 1,000(Y方向格子数) x 18(Byte) = 18(MB)

 このサイズは被切削材の精度を上げれば上げるほど、級数的に増加することに 留意しておく必要があります。

 例えば、精度を1/10の0.1mmにしたとすると たちまち100倍のデータ量1.8(GB)が必要になって きます。0.01mmの精度では、更にその100倍の180(GB)のメモリを 消費するという計算になってしまいます。

 現時点(2006年1月現在)では、ハイエンドPCのメインメモリのサイズは 高々2〜4GBかと思われます。TRYCUT 64bitバージョンを使用しても、プログラム上は 耐えていても実行空間のほとんどがディスクのページングファイルにスワップアウト という状況に陥り、異常に遅くなったりすることもあります。実際にはディスク上に ページングファイル(スワップ)空間が確保されない場合が多いことから、180(GB)クラス になるとエラーになってしまうケースがほとんどです。(※この部分は将来ハードの 進歩により改善されてくると予想されます。)

 あくまでも環境に依存しますが、現行の市販PCでは、18(MB)クラスのデータ では全く問題なく耐えられますが、1.8(GB)ぐらいのデータになってくると、 ディスクの空き容量など色々な諸条件が要求されることになります。また既に 32bitのOS上、もしくはTRYCUT2000では限界を越えてしまう場合もあるかも しれません。

 メモリが不足がちの場合、操作上の制約を加えてもよければ、ヘルプの こちらを参考にして下さい。最大メモリの 確保が50%節約できます。


[ページングファイルとは]

 CPUが直接アクセス可能な記憶領域は主記憶(メインメモリ)です。CPUがアクセス可能な メモリ空間が全てメインメモリ(主記憶)で確保されている状態では何も問題はないのですが、 他のパーツと比べてもメインメモリは比較的高価なもので、アクセス可能な空間から 見ると、はるかに小さいエリアしか実装されてきませんでした。
 処理の規模が大きくなると、メインメモリの空間だけでは賄えない場合が出て きます。このような場合OSの制御で、メインメモリに乗らない部分をディスクに 一時退避します。このエリアのことをWindowsの世界ではページング(スワップ)ファ イルと呼んでいます。


[ページングファイルはいくらまで増やせるか?]

 32bitのWindows上ではメインメモリと足して4GB(ひとつのアプリケーションでアクセス可能なのは2GB)に なるまで増やすことが可能です。昨今のハイエンドPCではギガバイトクラスのメモリを実装している場合が ほとんどで、32bitプラットフォームでは徐々に主記憶アクセスだけになり、ページングという概念が 少しずつ消え去る時代になってきたと言っても良いでしょう。
 64bit Windowsでは現在のところOSやCPUの制約にもより異なりますが、現行のもので は16TB(4GBの約4000倍)まで可能になっています。


[ページングファイルの設定方法]

Windows XPの例では、
 「コントーロールパネル」→「システム」→「詳細設定」タブ→「パフォーマンス」の 「設定(S)」ボタン→「詳細設定」タブ→「仮想メモリ」の「変更(C)」ボタン にて様々な領域確保が行えます。


[ページングファイル増量による問題]

 大容量のデータを扱う場合には、ページングファイルの増減によって処理の可否が決まる 場合も出てきます。
 しかし頻繁なページング、すなわちDISKアクセスの連続はレスポンスを著しく悪化させて しまいます。特に64bitの時代になると、問題が爆発する可能性大です。
 ページングという概念は、32bitアドレス時代の、高々 数百MBまでという前提での発想で、この程度であればページングによる待ち時間が 発生しても、かろうじて辛抱できるという背景があったものです。
 64bitのプラットフォームだからと言って、基本的にDISKアクセスが高速になるわけでは ありません。しかし、64bitプラットフォームでは仮想空間に余裕があるので、ついついGB〜数百GBクラスを 確保するということを平気で行ってしまうことが予想されます。そして、その結果は明らか(とんでもなく遅く なる)です。
 ページングファイルという概念は将来的に大容量メインメモリの時代になり少し ずつ消えて行くか、もしくは新たなデバイス(高速アクセスDISK)、最近ではSSDが 普及しつつありますが、これらの高速化・大容量化の恩恵で問題解決され延命するかの いずれかと思われます。


トップページへ