私はすでにテキストファイルに保存しようとしました(明らかに、Excelのようにテーブルを保持するようにカスタマイズされていないため、より多くのスペースが必要です). また、シリアル化されたデータを保持しようとしました(c#、参考までに)。どちらの場合もメリットはありませんでした。
1 に答える
5
ほとんどの「表形式」のデータはテキストであるため、保存する前にこれを圧縮することで大きなメリットが得られます(例としてGZipとBsonWriterを使用)。
public static byte[] Compress(object entity)
{
using (var stream = new MemoryStream())
{
using (var zipStream = new GZipStream(stream, CompressionLevel.Optimal))
{
using (var writer = new BsonWriter(zipStream))
{
var serializer = new JsonSerializer();
serializer.Serialize(writer, entity);
}
}
return stream.ToArray();
}
}
** アップデート **
Protobufは、シリアル化されたエンティティのサイズと速度の点で、XmlSerializerとBinaryFormatterの両方よりもはるかに優れています。圧縮する前に、これを使用してエンティティをシリアル化してみてください。
public static byte[] Compress(object entity)
{
using (var stream = new MemoryStream())
{
using (var zipStream = new GZipStream(stream, CompressionLevel.Optimal))
{
Serializer.Serialize(stream, entity);
}
return stream.ToArray();
}
}
于 2012-10-11T13:06:53.860 に答える