对基本重构的改进,去除 let 表达式,每个迭代只需要单个计数器检查,从而提高了 25% 的性能。使用补丁,最后迭代只需进行两次检查...
;; master
(quick-bench (into [] (take 1000) (range 2000)))
警告:最后一次 GC 需要了 34.82584189073624 % 的运行时间
评估计数:6 次样本中的 13050 次。
执行时间平均值:46.921254 微秒
执行时间标准差:1.904733 微秒
执行时间下四分位数:45.124921 微秒(2.5%)
执行时间上四分位数:49.427201 微秒(97.5%)
使用的开销:2.367243 纳秒
;; w/ patch
(quick-bench (into [] (take 1000) (range 2000)))
警告:最后一次 GC 需要了 34.74448252054369 % 的运行时间
评估计数:6 次样本中的 18102 次。
执行时间平均值:34.301193 微秒
执行时间标准差:1.714105 微秒
执行时间下四分位数:32.341349 微秒(2.5%)
执行时间上四分位数:37.046851 微秒(97.5%)
使用的开销:2.367243 纳秒