2012-01-08 8 views

答えて

2

バッファドインプット/アウトプットを使用すると、より速く簡単になります。 ;)

通常、ボトルネックは基本ディスクまたはストレージと同じスループットを得ることができます。あなたが高速SSDを持っていても、データにアクセスする両方の方法で最大スループットに近づくことができます。

更新の遅延の場合、メモリマップファイルは10〜100倍高速になる可能性があります。ただし、同時にファイルを読み取ろうとするプロセスがない限り、これはほとんど必要ありません。

+1

大きなファイルをメモリマッピングすると、アプリケーションのメモリ占有量が増え、システム全体のパフォーマンスに悪影響を与える可能性があります。 (極端な場合、非常に負...) –

+0

32ビットプログラムでは、JVMをクラッシュさせる仮想メモリが不足する可能性があります。しかし、64ビットのJVMでは、問題なくJavaにマッピングされた8 TBのメモリマップファイルが作成されています。 ;)http://vanillajava.blogspot.com/2011/12/using-memory-mapped-file-for-huge.html –

+0

これは当てはまりますが、マッピングされたファイルよりも物理メモリが大幅に少なくてマップされたファイルに十分な速さでランダムなパターンでアクセスすれば、重大なディスク/ VMのスラッシングに終わることを**保証することができます。巨大なマップされたファイルを複数のシーケンシャルパスで実行しても、他のアプリケーションでは不愉快なものになります。 –

関連する問題