2016-09-26 4 views
10

Ich habe ein Speicherleck Problem in eckigen js-Anwendung. Ich habe alle möglichen Lösungen wie Profil-Tool, Timeline und einige andere Tools im Zusammenhang mit eckigen js versucht. Meine Arbeit bis jetzt -Speicherproblem in eckigen Js-Anwendung

Profile Tool

Im Profilwerkzeug JS Heap behalten erhöht zu werden, aber nicht in der Lage ist, den Grund dafür zu finden. Detached dom element keep on increasing

Timeline

Es zeigt, gibt es eine Möglichkeit, Speicherlecks, aber ich weiß noch immer nicht, wie und es zu beheben zu debuggen.

enter image description here

Task-Manager

Es halten auf die Erhöhung der Speicher size.Some Zeit wird Müll gesammelt bekommen, aber nicht signifikant. enter image description here

Bitte lassen Sie mich wissen, wie und herausfinden, debuggen, was die issue.Or teilen Sie Ihre Erfahrungen sein könnte, wenn Sie das gleiche Problem konfrontiert.

+1

können Sie verwandten Code veröffentlichen? oder irgendein Plumer Wud ist großartig! Dazu können Sie Timeline-Profiling und erweitern Sie das Ereignisbaumprotokoll und überprüfen, welche Funktion Speicher ist –

+0

Zusätzlich zu dem, was @ Angular_10 oben gesagt hat, können Sie auch Tools wie Batarang versuchen zu sehen, welche Variablen im Bereich sind, wenn dieses Speicherleck passiert . Dies ist wirklich sehr üblich in AngularJS – nikjohn

+0

Versuchen Sie, so wenig $ Scope zu verwenden. $ Apply() wie möglich. – kingtut007

Antwort

1

AngularJS hat Speicherverluste, wenn viele Bindungen vorhanden sind. Die Beschränkung von angularJS ist nun, dass es eine 2-Wege-Bindung hat. Wenn Sie also einen Wert im Modell ändern, sehen Sie, dass $ dget(), $ watch() loop ausgelöst wird. Je nachdem, wie groß Ihre Anwendung ist, verbraucht sie Speicher.

Ich schlage vor, zwei Schritte, um zu versuchen:

  • berechnen Winkel Scope Objekte mit Winkel batarang
  • Scopes $ destroy() Methode, um Speicher frei
  • Versuchen Sie, Ihre JS in Seite verbraucht zu reduzieren. Verwenden Sie, was auch immer erforderlich ist

In meiner Anwendung reduzierte ich Beobachter und das Leben war einfach.