まっぷど☆まっぷど
というわけで、VS2010の評価のお題はメモリマップドファイル。
System.IO.MemoryMappedFilesは.NET4でマネージド実装されたものらしいです。
2GBほどのファイルを10MBごとのViewページングしつつシーケンシャルに読み込んで計測。
MemoryMappedViewAccessor.ReadArray(Of T): 00:01:12.7599811
MemoryMappedViewStream.Read: 00:00:34.0092414
BinaryReader.Read: 00:00:33.4706349
(一番下はふつうのBinaryReader)
メモリマップドファイル・・あんまり速くはないですね・・。
(追記)
定義した型(分足データとかね)を楽にジェネリックReadArrayできるのがちょっと魅力。でも遅い。
BinaryReaderはプリミティブ型しか使えない。ReadInt32とかして材料を取得してから地味に組み立てるしかない。でも速い。
あとはキャッシュの効き方が気になる。BinaryReaderで読んで自前でメモリにキャッシュするのよりも、MemoryMappedViewAccessorのほうが効率的に機能するのであれば、自前キャッシュを無くすこともできるかもしれない。
ちょっとくたびれたので、少し休みをとりつつ考えよう。





コメントする