Protobuf-net性能问题

时间:2017-03-27 22:43:32

标签: c# protocol-buffers protobuf-net

  1. 序列化标记为DynamicType的属性(输出NetObjectProxy)是否有明显的性能开销?

  2. 将RuntimeTypeModel编译为dll的效果是否比通过RuntimeTypeModel.Compile()的内存编译更好?

  3. 手动调用RuntimeTypeModel.Compile()有什么好处吗?

1 个答案:

答案 0 :(得分:1)

1:您必须使用自己的数据进行测试,但效率肯定低得多 - 线路上的空间更多,还有更多的事情要做(类型分辨率等) - 此外它还可以&# 39;只是将一切都归结为一条简单的道路

2:不在我的发现中;它确实减少了启动时间,但该功能的 key 驱动程序允许AOT(尽管真正的AOT需要单独的跨平台定位,这有点尴尬)。我正在等待Roslyn代码生成器" (https://github.com/dotnet/roslyn/blob/master/docs/features/generators.md)以便在将来改进AOT支持。

3:在某些情况下 - 是的;例如,您正在设置服务/服务器,并且您希望一切准备就绪第一次流量进入之前,然后再次 - 这可以花费时间现在以避免稍后延迟;但是:默认情况下,它会按需编译