2017-08-17 34 views
-1

角材料性能差和大存储器的画面:角材料性能差,大的存储器片段和内存泄漏

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-输入容器和$ mdDialog原因存储器泄漏 角材质页负载4倍慢于Chrome,并且几乎无法在IE中加载 `预期的行为是什么? 期望角度材料应用程序执行类似于角度的应用程序。

Perrformance 角唯一的应用程序: 铬:5.8秒负载500学生记录 1.4秒负载50学生记录 IE:24.98秒负载500学生记录 2.15秒负载50学生记录

角材料应用: Chrome浏览器:20.86秒加载500个学生记录 2.93秒加载50个学生记录 IE:等待1小时无法加载500名学生。 等待10分钟无法加载200名学生 42.46秒至50条学生记录 内存视频: 1.一般来说,IE使用的内存比镀铬内存高1.456倍 2.铬:角材料使用内存比不使用内存多2.26倍 3. IE:角材质使用1.73倍更多的内存比没有它

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

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

回答

1

如果我是你,我会用Virtual Repeat代替NG-重复尽可能多地。尤其是,IE很难绘制出大量具有涟漪效应,阴影和其他东西的角度材质元素。这应该会立即提升你的表现。需要注意的是,所有的行都需要具有相同的高度才能使用它。

我也只使用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尤其是,您可以禁用许多导致它慢下来的样式。查看CSS发布的on this issue,但请记住,自发布后,其中一些类名可能已发生更改。

+0

感谢您的信息,也许我不清楚,但我没有试图通过使用虚拟重复或禁用IE中的动画来提高性能。我在github链接中创建了两个项目,一个项目仅使用角度,另一个使用角度和角度材质来渲染几乎相同的页面和数据,但第二个项目在md-input-container中包装输入字段,这允许增加数量17倍以上的观察者。 –

+0

如果我禁用IE的所有动画和墨迹/波纹CSS效果,那么使用角度材质效果有什么优势?你有角2的经验吗,角材2和角2对性能,内存镜头和内存泄漏管理有什么改进? –