1

最近遇到了 protobuf-net,很棒的库。

我通过宪兵运行它,它提出了许多性能通知,例如:

目标:System.Int32 ProtoBuf.ProtoReader::ReadFieldHeader() 程序集:protobuf-net,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null

严重性:高信心:高来源:调试符号不可用,IL 偏移 0x0055 详细信息:类型“System.Int32”被装箱。

如果有人有宪兵经验,这些通知有多重要,我是否可以通过尝试清理任何严重性:高问题来回馈 protobuf-net ?

4

1 回答 1

1

您引用的具体错误来自:

if(fieldNumber < 1) throw new ProtoException(
    "Invalid field in source data: " + fieldNumber);

所以,是的,从技术上讲,这是一个不必要的盒子——但是,这是一个不值得关心的极端情况(如果你遇到这个例外,你的问题比盒子更大)。不过,如果它引起您的关注,它可能会被修复。

反射实现也可能会引发一些进一步的错误 - 这会产生误导,因为在大多数情况下实际上并未使用(代码同时具有反射模型和元编程模型)。

我打算看看下周宪兵说什么:更新-完成-注意大部分基本上是“忙碌的工作”-它并没有真正改变任何重要的事情,除了它让宪兵高兴。

于 2013-05-05T23:56:34.987 回答