评论由:mfikes制作
由于CLJ-1789补丁与较大映射工作得更好,这里是一个额外的性能测试,涵盖了该用例,使用该票中的数据,测试了我附加的原始补丁和Erik随后的补丁。您可以看到,CLJ-1789方法对ClojureScript也很有帮助。
Erik,我看到你附加了一个第三个补丁。我建议在每个这样的补丁中添加性能数字,这样就可以更容易地评估补丁在高级优化下的影响。
`
关键词-identical? 引擎 CLJ-1789
V8: 1.13 1.29
SpiderMonkey:1.89 2.39
JavaScriptCore:1.02 0.96
Nashorn: 1.12 1.42
ChakraCore: 1.68 1.82
`
之前
`
使用V8进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,373毫秒
使用SpiderMonkey进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,668毫秒
使用JavaScriptCore进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,200毫秒
使用Nashorn进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,2236毫秒
使用ChakraCore进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,1074毫秒
`
在 (keyword-identical?) 之后
`
使用V8进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,330毫秒
使用SpiderMonkey进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,353毫秒
使用JavaScriptCore进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,197毫秒
使用Nashorn进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,1991毫秒
使用ChakraCore进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,640毫秒
`
在 (CLJ-1789) 之后
`
使用V8进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,290毫秒
使用SpiderMonkey进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,279毫秒
使用JavaScriptCore进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,209毫秒
使用Nashorn进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,1578毫秒
使用ChakraCore进行基准测试
;; select-keys
[m {:a "b", :c "d", :b "b", :d "d", :e "e", :f "f", :g "g"}], (select-keys m [:a :c :b :d :e :f :g]), 200000次运行,591毫秒
`