大きなUInt16配列をファイルに保存しようとしています。positionCntは約50000、stationCntは約2500です。GZipStreamなしで直接保存すると、ファイルは約250MBになり、外部zipプログラムで19MBに圧縮できます。次のコードでは、ファイルは507MBです。私は何を間違えますか?
GZipStream cmp = new GZipStream(File.Open(cacheFileName, FileMode.Create), CompressionMode.Compress);
BinaryWriter fs = new BinaryWriter(cmp);
fs.Write((Int32)(positionCnt * stationCnt));
for (int p = 0; p < positionCnt; p++)
{
for (int s = 0; s < stationCnt; s++)
{
fs.Write(BoundData[p, s]);
}
}
fs.Close();