2024 Clojure状态调查中分享您的想法!

欢迎!有关如何使用本网站的更多信息,请参阅关于页面。

0
core.async

在Safari中将通道连接在一起似乎会泄漏内存。

例如,以下语句

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

当使用通道时将泄漏内存。链越长,内存泄漏越多。

我已经创建了一个示例存储库和一个示例页面。

存储库和示例代码在这里
https://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

我刚刚确认,这也同样是Mac OS X 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 和简单优化模式下都会出现泄漏。

0

评论者:dnolen

为确保此工单包含所有必要信息 - 如果我记得正确,即使是高级优化也受到影响吗?我正确吗,Bruce?

0

评论者:bhauman

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

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