2017-08-17 49 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對性能,內存鏡頭和內存泄漏管理有什麼改進? –