2013-05-02 1 views
9

Ich schreibe eine Client-schwere Website. Da meine eigenen Tests mich nur so weit bringen werden, möchte ich einige Statistiken darüber sammeln, wie es in der Wildnis funktioniert.Sammeln von JavaScript-Speicherprofildaten von Benutzern

Ich stelle mir vor, eine Art Profilierungscode zu meiner App hinzuzufügen, die einen gewissen Prozentsatz der Zeit laufen lässt (so dass es nicht alle verlangsamt) und diese Informationen nach Hause schickt.

Das Hinzufügen einiger Timing-Benchmarks sollte einfach sein, aber was bei lang laufenden Seiten mit viel JS wirklich ein Problem wird, ist die Speichernutzung. Gibt es eine Möglichkeit, den von meiner App genutzten Speicher aus normalem, nicht privilegiertem JS-Code in einem der gängigen Browser zu instrumentieren? Gibt es andere gute Profiling-Metriken, die verfügbar sind?

+0

gute Frage, ich bin sicher, es gibt einige Möglichkeiten, nicht sicher, ob Cross-Browser obwohl aber krank, was ich finden kann :) –

+0

Werfen Sie einen Blick auf diese: http://blog.chromium.org/2011/05/chrome -developer-tools-put-javascript.html insbesondere der Abschnitt über die Performance.Memory-Property. Wie ich schon sagte, es ist Browser-spezifisch und atm ich habe nichts gefunden, das auf den meisten Browsern funktioniert und ich bezweifle, dass Sie das tun, aber hey Chrome-Benutzer sind am richtigsten? –

+0

chorme hat das Element "inspect element", das bringt Sie zum Javascript cpu Profiling .... Ich weiß nicht, ob es das ist, was Sie suchen. https://developers.google.com/chrome-developer-tools/docs/profiles –

Antwort

1

In Chrome:

for (var key in performance.memory) { 
    alert(key+': '+performance.memory[key]); 
} 

DEMO: http://jsfiddle.net/usuXV/1/

Beispielausgabe:

jsHeapSizeLimit: 1620000000 
usedJSHeapSize: 10000000 
totalJSHeapSize: 16100000 

Sie können auch console.memory verwenden. Scheint, die gleichen Ergebnisse zurückzugeben.

0

Sehen Sie sich dieses Google I/O-Video an. Es wird ausführlich auf die Speicherauslastung von JavaScript eingegangen und wie das Google Mail-Team die Speicherauslastung für einige Benutzer beobachtet hat.

http://www.youtube.com/watch?v=x9Jlu_h_Lyw