请在 2024 年 Clojure 状态调查!中分享您的想法。

欢迎!请在 关于 页面查看有关此如何工作的更多信息。

0
ClojureScript

如果您只需在代码中添加 {{cljs.pprint}},那么 Closure 处理和典型 gzip 压缩后,JavaScript 将多出 30 KB。

此工单试图了解我们是否可以为此命名空间做一些使其更 DCE 兼容的事情。

4 个答案

0
_评论由:mfikes_

附加的补丁实质上消除了在需要但未使用 {{cljs.pprint}} 的情况下的所有代码。(由于需要保留一些公共 {{defmulti}},保留了一小部分代码。)但是,一旦使用了类似于 {{pprint}} 或 {{cl-format}} 的东西,大部分代码作为非死代码被恢复。

关于运行时性能,在 REPL 中,{{pprint}}

{:a 2, :b [1 2 3], :c {:x 1, :y :kw}, :d [1 :ab {:x 1}], :e "string"}

大约快 10%,可能是因为使用了 {{case}} 结构而不是 {{defmulti}}。相同的性能在 {{:advanced}} 下可以提高约 20%。(也许修订的地方可以接受 Closure 优化。)
0

评论由:mfikes

在 CI 和 Canary 中通过。

0

评论由:mfikes

将 CLJS-2885.patch 添加到 Patch Tender(i)

0
参考: https://clojure.atlassian.net/browse/CLJS-2885(由mfikes报告)
...