最佳实践
主要基于 dotnet 源码中的代码优化。
% 取模运算符
Intel处理器对求%运算有较高的指令级延迟,改为比较&减法可平均提升 foreach 2x速度。
1 | // \runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\Queue.cs 451L |
IEnumerable<T>
某些迭代集合具有延迟加载特性,大幅提升性能。
1 | // 加载全部文件到内存中(1647843个文件) |
?: 三元运算符
实际上比简单的比较&分支更慢,JIT会生成更好的底层代码。
1 | // \runtime\src\libraries\System.Private.CoreLib\src\System\Collections\Generic\Queue.cs 333L |
质数判断
1 | // \runtime\src\libraries\System.Private.CoreLib\src\System\Collections\HashHelpers.cs 40L |