2024 年 Clojure 状态调查! 中分享你的想法。

欢迎!请查看 关于 页面以获取更多关于该页面的信息。

0
ClojureScript

当一个 {{Delay}} 被实现时,将 {{f}} 设置为 {{nil}}。我们可以避免调用 {{truth_}} 和 {{not}},并且可以直接与 {{nil}} 进行比较,从而获得一个小的性能提升。

在 {{script/noderepljs}} 中,这会导致以下结果

(simple-benchmark [x (delay 1)] @x 1e9) (simple-benchmark [x (delay 1)] (realized? x) 1e9) (simple-benchmark [x (doto (delay 1) deref)] (realized? x) 1e9)

分别提高了 6%、11% 和 9% 的速度。

4 个答案

0

由:mfikes 发表的评论

在所有引擎的 {{:advanced}} 中,该问题描述中的 3 个基准测试产生以下加速数字

`
  V8: 1.18, 1.15, 1.09
SpiderMonkey: 1.08, 1.04, 1.19
JavaScriptCore: 1.70, 0.86, 0.93

   Nashorn: 1.05, 1.15, 1.14
ChakraCore: 1.21, 0.52, 0.81

`

0

由:mfikes 发表的评论

CLJS-1975.patch 不再适用

0

由:mfikes 发表的评论

CLJS-1975-2.patch 重新基准测试并成功通过 CI。

0
by
...