我正在处理一些繁重的cpu绑定问题。当我使用inline
关键字时,我发现性能有了很大的提高。我从标准的.net库中创建了一个字典,传入了一个自定义的键比较器,请参阅下面的代码和计时结果
https://gist.github.com/4409734
在Eq_cmp上不使用内联关键字
> perf_run 10000000 ;;
Real: 00:00:11.039, CPU: 00:00:11.029, GC gen0: 771, gen1: 3, gen2: 1
val it : unit = ()
在Eq_cmp上使用内联关键字
perf_run 10000000 ;;
Real: 00:00:01.319, CPU: 00:00:01.388, GC gen0: 1, gen1: 1, gen2: 1
val it : unit = ()
>
我还注意到内联代码和非内联代码在Gen 0GC数量上的巨大差异。
有人能解释一下为什么会有这么大的差异吗?
https://stackoverflow.com/questions/14086580
复制相似问题