欢迎!请查看 关于 页面以获取更多关于该页面的信息。
当一个 {{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% 的速度。
由:mfikes 发表的评论
在所有引擎的 {{:advanced}} 中,该问题描述中的 3 个基准测试产生以下加速数字
` V8: 1.18, 1.15, 1.09SpiderMonkey: 1.08, 1.04, 1.19JavaScriptCore: 1.70, 0.86, 0.93
`
Nashorn: 1.05, 1.15, 1.14 ChakraCore: 1.21, 0.52, 0.81
CLJS-1975.patch 不再适用
CLJS-1975-2.patch 重新基准测试并成功通过 CI。