我的主應用程序有一個問題,在沒有刷新的情況下使用應用程序,內存(和CPU使用率)越來越高。AngularJS簡單的應用程序內存泄漏
我設法複製它: https://jsfiddle.net/fmgy778r/
angular.module('TestModule', []).controller('TestController', function ($controller, $scope) {
$scope.a = [];
for (var i = 0; i < 10 * 1000 * 1000; i++)
$scope.a.push("stringstring" + i);
});
按SHIFT +在Chrome ESC。
現在按「問題」,您的該選項卡的內存將爲1GB + - 。
按「默認」,看到內存仍然是1GB。
按「問題」,看到內存正在下降,然後再次上升。
按「默認」一次,然後按「問題」 10次點擊快捷方式spamy,看看你的記憶扣球以1.5-2GB
我有大約30個模塊在我的系統如果這種事情發生在所有人身上,我明白爲什麼記憶只是在膨脹。
這是怎麼發生的?
如何解決?
*我知道我應該使用this
而不是$scope
,但我想重現真實的代碼。
我不確定爲什麼要在數組中放入10000000個項目(並且每個clilck添加相同的數量)。這似乎是一個非常不尋常的用例。我會認爲這不是angulars故障,因爲當你使用vanilla Javascript時會發生同樣的情況。 – DrColossos
我同意@DrColossos爲什麼要循環10000000次。問題在於這一部分。 JavaScript是客戶端,不要讓你的客戶有困難。 :D – ariezona
這是否會改變你的任何事情:https://jsfiddle.net/fmgy778r/1/? – Fidel90