VBOについて
i-mail ver.1.03のドキュメントに書かれていたVBOについて、具体的にどういったものなのか?というご質問が寄せられました。簡単ではありますが、VBOとは何か?そしてi-mailとの関係性について解説いたします。
- VBOとは何か?
- VBOとは、Virtual Binary Object(仮想バイナリオブジェクト)の略で、Heapの少ないNewtonで大きなデータを扱うためにNewton OS 2.0から導入された機能です。
- パソコンやワークステーションの仮想記憶(Virtual Memory)に近い機能を Newtonで実現します。もっともNewtonではハードディスクのかわりにStoreに一時的にバイナリデータの内容が保存されます。
- つまり、VBOはHeapを消費しない変わりにStoreを消費するわけです。
- VBOを使っているソフトウェア
- 身近なところでは、パッケージのインストール(つまりOS自身)、Newton Worksのワードプロセッサ(Paper)などです。
- i-maiでVBOを使用する理由
- メールの受信、(添付データの)送信には大きなデータサイズを扱う必要があります。MP130、MP2000やメモリ増設なしのeMate300などHeap の少ないNewtonではすぐにHeap不足になってしまいます。
- VBOは特別な機能ではありません。大きなデータサイズを扱うソフトウェアでは必ず利用されています。逆の言い方をすれば、VBOを使わない限りNewtonでは大きなデータサイズを扱うことができません。
- VBOの速度
- VBOは大きなデータサイズを扱える変わりに、速度がかなり遅くなるという欠点があります。これはパソコンやワークステーションの仮想記憶の比ではありません。
- ※具体的な実測データはありませんが、MP130でバイナリデータの読み書きを頻繁に行うようなソフトウェアでは2〜3倍以上の差があります(注:普通のソフトウェアでは読み書きの時間が全てではありませんので、ここまでの差はでません)。
- MP2100になりHeapが大幅に増加しました。もちろん、100KBなどの大きなデータを扱うときには VBOは必須ですが、通常読むようなメールではオンメモリ(Heap上)で処理しても問題のないぐらいの余裕があります。
- つまり、MP2100やメモリを増設したeMate300ではVBOを使わない方が効率がいいわけです。
- VBOが使用したStoreが解放されないことについて
- VBOが使用しているStoreの領域はOSにより管理されています。
通常は利用されなくなるとOSがガベージコレクションしますし、リスタートを行えばVBOの使用していた領域は全て解放されるのが普通です。
- つまり、このVBOの管理機構に何らかの問題が発生し、解放されない領域が発生するものと推測されます(US Appleに確認中)。