将一个基本重构移除 let 形式,并只需要对每个迭代进行单个计数器检查,从而提高了 25% 的性能。补丁后,最后一次迭代只需进行 2 检查(如果 counter 参数为 <= 0)...
;; master
(quick-bench (into [] (take 1000) (range 2000)))
警告:最后的 GC 需要了 34.82584189073624 % 的运行时间
评估次数:6 样本中的 2175 次 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 样本中的 3017 次 18102。
执行时间平均值:34.301193 微秒
执行时间标准差:1.714105 微秒
执行时间下四分位数:32.341349 微秒(2.5%)
执行时间上四分位数:37.046851 微秒(97.5%)
使用了 2.367243 纳秒开销