기존 BinaryReader를 통한 read보다 .Net Framework 4.0에서 새로 지원하는 MemoryMappedFile로 Read시 CPU Performance와 속도가 빠릅니다.
ex) MemoryMappedFile을 이용하여 Read
Reference가 없는 Struct는 자체 Generic Function으로 지원
Reference가 있는 것은 하단과 같이 변환
using( var mmf = MemoryMappedFile. CreateFromFile(fileName, FileMode.Open, "MemoryFileID" )) { using ( var accessor = mmf.CreateViewAccessor()) { long pos = 0 ; index = accessor.ReadInt32(pos); pos += sizeof(Int32); dataCount = accessor.ReadInt32(pos); pos += sizeof(Int32); BookParam = BookStruct.FromMemoryFile(accessor, pos); pos += Marshal.SizeOf(typeof ( BookParam10 )); PageParams = new PageParam[channelGroupCount]; int pageRawSize = 0; int pageRawTotalSize = 0 ; for ( int chn = 0 ; chn < channelGroupCount; chn ++ ) { accessor.Read <PageParam> (pos, out PageParams[chn]); pos += Marshal.SizeOf(typeof(PageParam)); pageRawSize = PageParams[chn].PageCount * BookParam . PageDataLength; pageRawTotalSize += pageRawSize; } accessor.ReadArray<short>(pos, pPageRawBuffer, 0, pageRawTotalSize); } }