2016-12-23 2 views
0

Ich habe {N} App (auf Android) zu langsam gefunden - vor allem während der Navigation und bemerkte, dass es zunehmend langsamer wird, wie ich die Anzahl der Navigationen erhöhen.Nativescript App-Leistung

Ich denke, es hat mit Speicherlecks zu tun.

Ich entwickle unter Windows und VS-Code. Irgendwelche Vorschläge, wie ich auf Speicherlecks, Leistung usw. überprüfen kann.

+0

Stellen Sie sicher, dass mindestens Version 2.4 ausgeführt wird. Probleme mit 2.3 Ich denke mit Navigation und Speicher –

+0

Sie müssen angeben, welche Version ('tns info') der Laufzeiten und TNS-Core-Module. – Nathanael

+0

Urschrift 2.4.2; tns-Kern-Module 2.4.4; TNS Android 2.4.1 – dashman

Antwort

0

Wenn Sie die neueste Version von NativeScript verwenden, dann würde ich vermuten, dass Sie neue Datenstrukturen erstellen und diese bei jeder Seitennavigation beibehalten. Beispielsweise; wenn Sie das tun:

var page; 
exports.loaded(args) { 
    page = args.object; 
} 

Und dann Stell navigieren, wird Seite Variable noch auf das gesamte Seitenelement gerichtet sein, die dann alles auf der Seite im Speicher im Zusammenhang behalten. Also gibt es ein paar Lösungen dafür.

  1. Verwenden Sie WeakRef, um Verweise auf Objekte zu verwalten, die gecodiert werden müssen.
  2. Verwenden Sie das entladene Ereignis, um alle Referenzen zu Dingen zu löschen, die Sie in Ihrem Code globalisiert haben, wie in unserem Beispiel page oben.

Ein Weg, um zu bestimmen, was das Problem verursacht ist eine Heapdump zu erzwingen, indem Sie den Code in Ihrem Android-App setzt irgendwo: __heapSnapshot(); Dieses einen Heap-Snapshot generieren. Nach dem Herunterladen auf Ihren Computer können Sie die Chrome-Entwicklerwerkzeuge öffnen und die Heap-Nutzung überprüfen.