我在一個總損失和留下的感覺就像在一般使用2角爲構建真實世界的應用,由於周圍的內存使用的問題放棄了。角2,使用Javascript,內存使用情況和垃圾收集
我按照所有的像歸零所有屬性時不再需要,刪除所有對性能,排空陣列等,妥善解決的最佳編碼實踐倒閉等等等等等等等等...
這無論如何,當在Angular 2中測試一些非常基本的功能時,我會繼續在DOM的各種基本操作的運行期間遇到不斷增加的內存使用情況。
在執行過程中使用的內存大塊只是一個例子,從來沒有得到垃圾回收:
動畫一個div隨時間的寬度。
我試圖以幾種不同的方式實現這種UI行爲,最有效的方法是使用requestAnimationFrame的間隔,並將其全部包裝在Angular的zone.runOutsideOfAngular
方法中。無論如何,將下面一行放在循環中使用大量的內存,即使在使用cancelAnimationFrame正確取消循環後,循環內使用的nulling屬性以及對div的所有引用,並刪除來自DOM的div。
this.renderer.setStyle(this.progressBar.elRef.nativeElement.querySelector('.progress-inner'), 'width', percentProgress+'%');
正如我確信你可以告訴,這是從修改進度欄的寬度方法採取的一條線。再說一遍,我注意到我試過用幾種不同的方式實現一個進度條。使用CSS來製作動畫,而不是上面概述的方法。
總的來說,似乎不管我做什麼 - 無論我嘗試實現什麼,很多與動畫有關的動作 - 即使只是像滾動一樣,似乎都需要不斷增加的內存量在Angular 2應用程序中永遠不會收集垃圾。
因此,在短期,這篇文章是不特定於間隔,或動畫一個div的寬度。幾乎Angular 2應用程序內部的任何任務似乎都使用大量永遠不會垃圾收集的內存。
任何人都可以提供任何指導? 推薦一本關於內存使用和Javascript的書嗎?
它的確一直非常沮喪碰上,我一直的內存使用量的問題。推動我想放棄使用Angular 2。
雖然這篇文章是爲角,但是你可以用你的應用程序相關的。這是[Link](https://medium.com/@rlucha/memory-management-in-angular-applications-12f05499b36d)。 –