我最近做了一些代碼的一些分析,發現最大的CPU使用率正在被調用消耗BitConverter如:爲什麼BitConverter比直接按位操作慢?
return BitConverter.ToInt16(new byte[] { byte1, byte2 });
切換到像時:
return (short)(byte1 << 8 | byte2);
我注意到一個性能的巨大提高。
我的問題是爲什麼使用BitConverter如此慢?我會假定BitConverter實質上是在內部進行相同的位移。
什麼是「巨大的進步」?沒有函數調用的開銷總是會有所作爲。由於這是一個非常短的函數,所以函數開銷會相對較大。當你允許內聯擴展(編譯器優化)時,差異(大部分)會消失嗎? – Floris