最近,我的任务是在我们的Ember应用程序中查找内存泄漏。经过一天左右的时间,我得出结论,在每次路线过渡后,Ember似乎正在泄漏整个集装箱。
我制作了一个玩具应用来证明这一点,你可以在这里找到:https://github.com/arthare/leakyEmberApp
概述:
在应用程序中,有route1和route2。
Route1.hbs看起来像这样(它链接到route2,并有一些文本):
{{#link-to 'route2'}}Next{{/link-to}} <-- Click that guy
...some instructional, completely non-dynamic text...
Route2.hbs看起来像这样:
{{#link-to 'route1'}}Go back{{/link-to}} <-- Now click that guy
正如你所看到的,这距离一个'#hello world&#34;应用
错误:
有谁知道我能做些什么呢?在玩具应用程序中,后果相当小,但在我们的真实应用程序中,它正在泄漏非常重要的组件,每次转换吸收500kb-1mb的内存。玩具应用程序也有一个极其漏洞的版本(提交4fd324f829),其中每个转换都会泄漏一个大的500元素组件。
Firefox也漏掉了,所以它不仅仅是一个镀铬的东西。
答案 0 :(得分:1)
通过升级到2.0.1在玩具应用中解决了这个问题。所以看起来它在应用程序的当前版本和2.0.1之间的某个时间被修复。
追踪版本: