Ich habe einen Prozess, der Hunderte von Zeilen in einem Raster über jQuery aktualisiert. Es dauert zu lange, also versuche ich herauszufinden, wo der Flaschenhals zuerst ist, damit ich dort arbeiten kann. Ich habe das Profilerstellungs-Tool von Chrome ausprobiert, es aber schwer verstanden, es zu verstehen (siehe Screenshot). Wie finde ich heraus, welches das Problem ist, da sich Selbst und total völlig unterscheiden?Wie kann ich Javascript-Profil lesen und optimieren?
Antwort
self
ist, wie viel Zeit wurde verbrachte Arbeit direkt in dieser Funktion.
total
ist, wie viel Zeit in dieser Funktion und in den aufgerufenen Funktionen verbracht wurde.
http://stackoverflow.com/questions/7127671/difference-between-self-and-total-in-chrome-cpu-profile-of-js –
Der Flaschenhals hier ist fast garantiert das DOM (Methoden innerhalb des Browsers), nicht irgendein spezifischer JS-Code.
Wenn Sie genügend Daten anzeigen, dass die Aktualisierung den Browser für einige Sekunden sperrt, sollten Sie sich überlegen, stattdessen ein virtuelles Scrollraster zu verwenden. Mein Favorit ist SlickGrid.
Anstatt nur eine riesige Tabelle zu rendern, speichern Sie Ihr Dataset in wesentlich leichteren JS-Objekten im Speicher. (Dies kann folglich in einer Größenordnung geändert und sortiert werden, die schneller ist als die DOM-basierten Aktualisierungen, die Sie gerade ausführen.) SlickGrid rendert nur DOM-Elemente für den Teil der Tabelle, den Sie gerade betrachten, so dass es viel weniger Belastung gibt der Browser.
Sie können auch den Datensatz load small chunks gleichzeitig auswählen (das Back-End wird als einfache Seitennumerierung implementiert), sodass Sie effektiv unendliche Zeilen im Browser mit konstanter Leistung anzeigen können.
- 1. Wie kann ich active_admin optimieren
- 2. Wie kann ich für IE optimieren?
- 3. Wie kann ich diese MySQL-Abfrage optimieren?
- 4. Wie kann ich diese LinQ-Abfrage optimieren?
- 5. wie ich meine mysql Abfrage optimieren kann
- 6. Wie kann ich meinen BinaryWriter optimieren?
- 7. Wie kann ich diese MySQL-Abfrage optimieren?
- 8. Wie kann ich die 'IN' Abfrage optimieren?
- 9. Wie kann ich diese Abfragen optimieren?
- 10. Wie kann ich den Code optimieren?
- 11. Wie kann ich diesen Code optimieren?
- 12. Wie kann ich dieses Menü optimieren?
- 13. Wie kann ich unter Abfrage optimieren?
- 14. Wie kann ich diese nachgefragte und verbundene MySQL-Abfrage optimieren?
- 15. Wie kann ich die Dojo-Ladezeit optimieren?
- 16. Wie kann ich diese Abfrage optimieren?
- 17. Wie kann ich diese Abfrage optimieren?
- 18. Wie kann ich diese bestimmte Abfrage optimieren?
- 19. Wie kann ich diese linq-Abfrage optimieren?
- 20. Wie kann ich diesen Code optimieren
- 21. Wie kann ich diesen Java Code optimieren?
- 22. Wie kann ich diese SQL-Abfrage optimieren?
- 23. Wie kann ich meinen SQL-Code optimieren?
- 24. Wie kann ich diese Farbdifferenzfunktion weiter optimieren?
- 25. Wie kann ich lesen und validieren
- 26. Wie kann ich die Größe meiner AngularDart-Anwendung optimieren?
- 27. Wie viel sollte ich optimieren?
- 28. Kann ich PyInstaller die Kompilierung optimieren lassen?
- 29. Kann LINQ "Abfragen" optimieren?
- 30. Was/Wie kann ich für meine API optimieren?
Wir müssen sehen, wie Sie es mit Code machen. Alles ist Zeile für Zeile und das Aktualisieren der DOM 100 Zeiten ist schlecht. – epascarello
Mein erstes Problem ist, ich weiß nicht, wo der Engpass ist, den Code zu geben. Es gibt Tausende von Codezeilen, also hoffe ich auf Hilfe bei der Frage, aus welchem Bereich das Snippet stammt. – TruMan1