2024年Clojure调查!中分享您的想法。

欢迎!请查阅关于页面,了解更多关于本平台的信息。

0
ClojureScript
这是一个针对{{transient []}}的非常简单的优化。它避免了复制空数组。

性能提升,针对较小向量(5-32元素)的{{mapv}},在Firefox和Chrome上从20%到100%。


(defn faster-editable-root
  [node]
  (if (identical? (.-EMPTY_NODE PersistentVector) node)
    (VectorNode. (js-obj) (make-array 32))
    (VectorNode. (js-obj) (aclone (.-arr node)))))
(def orig-editabe-root tv-editable-root)
(enable-console-print!)
(dotimes [_ 2]
  (doseq [size [5 10 40]]
    (let [xs (range size)
          sims 500000]
      (set! tv-editable-root orig-editabe-root)
      (prn "Size: " size)
      (simple-benchmark [] (mapv inc xs) sims)
      (set! tv-editable-root faster-editable-root)
      (prn "NEW:")
      (simple-benchmark [] (mapv inc xs) sims))))

4 个回答

0

评论者:mfikes

CLJS-2132.patch通过CI测试(/)

0

评论者:mfikes

CLJS-2132.patch添加到补丁暂存(i)

0

评论者:mfikes

CLJS-2132.patch通过了Canary测试(/)

0
欢迎来到Clojure问答社区,您可以在这里提出问题并从Clojure社区的成员那里获得解答。
...