评论由:gshayban 创建
哎呀,我无法重现你的结果。
我不确定你是否使用 lein 测试,在什么平台上,什么 jvm opts。
我们能否使用这个小执行器来测试,而不是直接针对 clojure.jar?我已经附上了执行器及其两次运行结果(一个使用默认堆,另一个 3GB 使用 G1GC)
我还添加了中等和小的范围(range)。
据观察,doseq2 在所有情况(除了小范围)中表现都优于其他。使用 criterium 显示了更大的性能差距,偏向于 doseq2。
我将结果并排放置以便更轻松地查看。
`
core/doseq doseq2
"执行时间: 1610.865146 毫秒" "执行时间: 2315.427573 毫秒"
"执行时间: 2561.079069 毫秒" "执行时间: 2232.479584 毫秒"
"执行时间: 2446.674237 毫秒" "执行时间: 2234.556301 毫秒"
"执行时间: 2443.129809 毫秒" "执行时间: 2224.302855 毫秒"
"执行时间: 2456.406103 毫秒" "执行时间: 2210.383112 毫秒"
;; 中等范围,少量绑定
core/doseq doseq2
"执行时间: 28.383197 毫秒" "执行时间: 31.676448 毫秒"
"执行时间: 13.908323 毫秒" "执行时间: 11.136818 毫秒"
"执行时间: 18.956345 毫秒" "执行时间: 11.137122 毫秒"
"执行时间: 12.367901 毫秒" "执行时间: 11.049121 毫秒"
"执行时间: 13.449006 毫秒" "执行时间: 11.141385 毫秒"
;; 小范围,少量绑定
core/doseq doseq2
"执行时间: 0.386334 毫秒" "执行时间: 0.372388 毫秒"
"执行时间: 0.10521 毫秒" "执行时间: 0.203328 毫秒"
"执行时间: 0.083378 毫秒" "执行时间: 0.179116 毫秒"
"执行时间: 0.097281 毫秒" "执行时间: 0.150563 毫秒"
"执行时间: 0.095649 毫秒" "执行时间: 0.167609 毫秒"
;; 小型非分块可减少,少量绑定
core/doseq doseq2
"执行时间: 2.351466 毫秒" "执行时间: 2.749858 毫秒"
"执行时间: 0.755616 毫秒" "执行时间: 0.80578 毫秒"
"执行时间: 0.664072 毫秒" "执行时间: 0.661074 毫秒"
"执行时间: 0.549186 毫秒" "执行时间: 0.712239 毫秒"
"执行时间: 0.551442 毫秒" "执行时间: 0.518207 毫秒"
core/doseq doseq2
"执行时间: 95.237101 毫秒" "执行时间: 55.3067 毫秒"
"执行时间: 41.030972 毫秒" "执行时间: 30.817747 毫秒"
"执行时间: 42.107288 毫秒" "执行时间: 19.535747 毫秒"
"执行时间: 41.088291 毫秒" "执行时间: 4.099174 msecs"
"执行时间: 41.03616 毫秒" "执行时间: 4.084832 毫秒"
;; 小型分块可减少,少量绑定
core/doseq doseq2
"执行时间: 31.793603 毫秒" "执行时间: 40.082492 毫秒"
"执行时间: 17.302798 毫秒" "执行时间: 28.286991 毫秒"
"执行时间: 17.212189 毫秒" "执行时间: 14.897374 毫秒"
"执行时间: 17.266534 毫秒" "执行时间: 10.248547 毫秒"
"执行时间: 17.227381 毫秒" "执行时间: 10.022326 毫秒"
;; 更多绑定
core/doseq doseq2
"执行时间: 4.418727 msecs" "执行时间: 2.685198 msecs"
"执行时间: 2.421063 msecs" "执行时间: 2.384134 msecs"
"执行时间: 2.210393 msecs" "执行时间: 2.341696 msecs"
"执行时间: 2.450744 msecs" "执行时间: 2.339638 msecs"
"执行时间: 2.223919 msecs" "执行时间: 2.372942 msecs"
core/doseq doseq2
"执行时间: 28.869393 msecs" "执行时间: 2.997713 msecs"
"执行时间: 22.414038 msecs" "执行时间: 1.807955 msecs"
"执行时间: 21.913959 msecs" "执行时间: 1.870567 msecs"
"已过时间: 22.357315 msecs" "已过时间: 1.904163 msecs"
"已过时间: 21.138915 msecs" "已过时间: 1.694175 msecs"
`