protobuf-net序列化性能问题
|
我已经开始测试protobuf-net进行序列化。我看过一些基准测试(http://www.servicestack.net/benchmarks/NorthwindDatabaseRowsSerialization.100000-times.2010-08-17.html),该基准测试建议更快的序列化和更小的文件。
我确实看到所生成文件的大小存在巨大差异。但是,我看到的速度是WCF的DataContractSerializer的5%以内。
那让我想知道我做错了什么吗?
这是我的测试代码:
private static void ProtoBufSerializer(IQueryable<DataRow> details)
{
List<DataRow> list = details.ToList();
using (var file = File.Create(\"protobuf2.bin\"))
{
Serializer.Serialize<List<DataRow>>(file, list);
}
}
private static void DataContractSerializer(IQueryable<DataRow> details)
{
DataContractSerializer serializer = new DataContractSerializer(typeof(List<DataRow>));
List<DataRow> list = details.ToList();
using (FileStream fileStream = new FileStream(\"testSerializationDataContract.xml\", FileMode.Create))
{
serializer.WriteObject(fileStream, list);
}
}
[ProtoContract]
public class DataRow
{
[ProtoMember(1)]
public DRFDataRow DrfDataRow;
[ProtoMember(2)]
public Guid guid;
}
[ProtoContract]
public class DRFDataRow : FixedWidthRow
{
[ProtoMember(1)]
public int CompanyNumber { get; set; }
// several fields abreviated for brevety
}
[ProtoContract, ProtoInclude(100, \"DRFDataRow\")]
public abstract class FixedWidthRow : IProviderRow
{
// several fields abreviated for brevety
我的列表中大约有73k件商品。每个项目都不太大,尽管DRFDataRow中有很多字段(大约50个)。
附注:我没有抱怨,我对结果感到非常满意,因为序列化结果的大小非常小,我只是想知道我是否还能重现基准测试中看到的速度提升。
没有找到相关结果
已邀请:
1 个回复
苛肠倒俱
和
中添加
)。 如果问题不是“ 1”,那么完全可以彻底检查内部结构的v2(当前可以作为alpha或来源)可能很值得尝试。 要获得更详细的答案,我需要一个完全可复制的示例进行调查。