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

我刚刚确认,这同样是在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

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

0

评论者:bhauman

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

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