角度材料性能差,大内存镜头和内存泄漏

时间:2017-08-17 15:56:05

标签: angularjs performance memory-leaks angular-material

角度材料性能不佳和大内存素材:

Issue: When added md-input-container to a page, the number of $watchers increased from 6504 to 112507?, by total 17 times more than without the angular material tag* md-input-container和$ mdDialog都会导致内存泄漏 Angular Material页面在Chrome中加载速度慢4倍,几乎无法在IE中加载 `预期的行为是什么? 期望Angular材料应用程序执行类似仅角度应用程序。

Perrformance Angular Only App: Chrome:5.8秒加载500个学生记录 1.4秒加载50个学生记录 IE:24.98秒加载500个学生记录 2.15秒加载50个学生记录

Angular Material App:      Chrome:20.86秒加载500个学生记录                          2.93秒加载50个学生记录  IE:等1个小时无法加载500名学生。              等10分钟无法加载200名学生              42.46秒到50个学生记录 记忆画面: 1.一般来说,IE使用的内存比chrome高1.456倍 2. Chrome:angular材质使用的内存比不使用它多2.26倍 3. IE:角度材料使用的内存是没有它的1.73倍

内存泄漏: 当在视图中使用角度材料时,在两个视图之间在IE中检测到内存泄漏。 - 在IE中,23次内存增加了26次 $ mdDialog导致Chrome和IE中的内存泄漏 - 打开和关闭对话31次,Chrome内存增加27 MB,IE内存增加 12 MB

我将代码上传到: github:https://github.com/gregyichang/MemoryLeak

1 个答案:

答案 0 :(得分:1)

如果我是你,我会尽可能使用Virtual Repeat代替ng-repeat。 IE特别难以绘制很多具有波纹效果,阴影和其他东西的Angular Material元素。这应该可以立即提升你的性能。需要注意的是,所有行都需要具有相同的高度才能使用它。

我也只在需要的地方使用layoutflex。例如,您可以使用<div><span>A</span><span>B</span></div>代替<div layout="row"><div>A</div><div>B</div></div>,并且可以使用<div>A</div><div>B</div>代替<div layout="column"><span>A</span><span>B</span>

最后,对于IE尤其如此,您可以禁用导致其速度变慢的许多样式。请参阅发布的on this issue CSS,但请记住,自发布以来,其中一些类名称可能已更改。