在《2024 Clojure状态调查》中分享您的想法!点击此处

欢迎!请查阅关于页面了解更多关于此处如何操作的信息。

0
core.async

将通道链在一起会在Safari中明显导致内存泄漏。

以下语句

(def test [input-chan] (map< identity (map< identity (map< identity input-chanitos))

当使用通道时,将造成内存泄漏。链越长,内存泄漏越严重。

我已经创建了示例仓库和示例页面。

仓库和示例代码在这里
http://github.com/bhauman/checkmemleak/blob/master/src/checking_safari_leak/core.cljs

展示页面在这里
此链接将导致泄漏
http://rigsomelight.com/checkmemleak/?leak=true
此链接不会泄露
http://rigsomelight.com/checkmemleak

泄漏非常严重。

5个答案

0

评论者:bhauman

我刚刚确认这也存在于Mavericks上的Safari版本7.0.1(9537.73.11)中。

0

评论者:bhauman

我更新了示例页面。

http://rigsomelight.com/checkmemleak/index.html

此链接不会泄露
http://rigsomelight.com/checkmemleak/index.html#comp-partial

此链接将导致泄漏
http://rigsomelight.com/checkmemleak/index.html#map

这里有导航来尝试不同的实现和优化模式。

为了明确,map<-chain、custom-map、map<-和map->在:none和simple优化模式下都会表现出泄漏。

0

评论由:dnolen 提出

为了确保该工单包含所有必要的信息——如果我记得正确的话,即使是高级优化也受到影响吗?布鲁斯,我这样做对吗?

0

评论者:bhauman

是的,它影响了高级优化。我还没有检查这个问题是否仍然存在。

0
参考:https://clojure.atlassian.net/browse/ASYNC-51(由 bhauman 报告)
...