删除let形式的基本重构,每个迭代只需要进行单个计数检查,从而提高25%的性能。使用补丁,最后一次迭代只需要2次检查(假设计数器参数小于等于0)...
;; master
(quick-bench (into [] (take 1000) (range 2000)))
警告:最后的垃圾回收占用了运行时间的34.82584189073624 %。
评估次数:13050,在6个样本中的2175次调用。
平均执行时间:46.921254 µs
执行时间标准差:1.904733 µs
执行时间下四分位数:45.124921 µs (2.5%)
执行时间上四分位数:49.427201 µs (97.5%)
用于开销:2.367243 ns
;; w/ patch
(quick-bench (into [] (take 1000) (range 2000)))
警告:最后的垃圾回收占用了运行时间的34.74448252054369 %。
评估次数:18102,在6个样本中的3017次调用。
平均执行时间:34.301193 µs
执行时间标准差:1.714105 µs
执行时间下四分位数:32.341349 µs (2.5%)
执行时间上四分位数:37.046851 µs (97.5%)
用于开销:2.367243 ns