一个基本的重构,移除了let形式,并对每个迭代仅需要单个计数器检查,从而将性能提高了25%。使用补丁,最后一次迭代仅需要2次检查(如果计数器参数为 <= 0)...
;;主分支
(quick-bench (into [] (take 1000) (range 2000)))
WARNING: 最终GC必须使用34.82584189073624 %的运行时间
评估计数:在6个样本中为2175次调用中的13050次。
执行时间平均值:46.921254 µs
执行时间标准差:1.904733 µs
执行时间下四分位数:45.124921 µs(2.5%)
执行时间上四分位数:49.427201 µs(97.5%)
开销使用:2.367243 ns
;; 有补丁
(quick-bench (into [] (take 1000) (range 2000)))
WARNING: 最终GC必须使用34.74448252054369 %的运行时间
评估计数:在6个样本中为3017次调用中的18102次。
执行时间平均值:34.301193 µs
执行时间标准差:1.714105 µs
执行时间下四分位数:32.341349 µs(2.5%)
执行时间上四分位数:37.046851 µs(97.5%)
开销使用:2.367243 ns