【问题标题】:Protobuf-net performance questionsProtobuf-net 性能问题
【发布时间】:2017-03-27 22:43:31
【问题描述】:
  1. 序列化标记为 DynamicType(输出 NetObjectProxy)的属性是否存在明显的性能开销?

  2. 将 RuntimeTypeModel 编译为 dll 会比通过 RuntimeTypeModel.Compile() 在内存中编译的性能更好吗?

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

【问题讨论】:

    标签: c# protocol-buffers protobuf-net


    【解决方案1】:

    1:您必须使用自己的数据进行测试,但它的效率肯定要低得多 - 线路上的空间更大,要做的事情更多(类型解析等) - 而且它不能只是将所有内容 JIT 到一个简单的路径

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

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

    【讨论】:

    • 谢谢 Marc,非常感谢您的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多