请在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#maplt;

在此可以进行导航以测试不同的实现和优化模式。

为了明确,maplt-chain、custom-map、maplt和mapgt在: none和simple优化模式下都会泄漏内存。

0票数

评论作者:dnolen

为了确保这个票据包含所有必要的信息 - 如果我记得正确的话,即使是高级优化也会受到影响?布鲁斯,我是对的吗?

0票数
by

评论作者:bhauman

是的,它影响了高级优化。我还没有检查这还是一个未解决的问题。

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