【发布时间】:2014-03-12 14:47:08
【问题描述】:
我最近对一些代码进行了一些分析,发现对 BitConverter 的调用消耗了最大的 CPU 使用率,例如:
return BitConverter.ToInt16(new byte[] { byte1, byte2 });
当切换到类似的东西时:
return (short)(byte1 << 8 | byte2);
我注意到性能有了很大的提升。
我的问题是为什么使用 BitConverter 这么慢?我会假设 BitConverter 本质上是在内部进行相同类型的位移。
【问题讨论】:
-
什么是“巨大的改进”?没有函数调用的开销总是会有所作为。由于这是一个很短的函数,所以函数开销会比较大。当您允许内联扩展(编译器优化)时,差异是否(大部分)消失了?
标签: c# bit-shift bitconverter