Ich erfuhr über flame graphs und finde sie faszinierend - aber ich konnte keinen nützlichen Hinweis finden, wie man sie für meine PHP-Skripte erzeugt. Wie kann ich die Daten sammeln und die Grafiken mit PHP erstellen?Wie erzeugt man Flammengraphen mit PHP?
Antwort
Sie können Xdebug verwenden, um cachegrind-Profile Ihres PHP-Codes zu erstellen. Sie können einen Blick auf this project werfen, die xdebug die cachegrind Ausgabe mit PHP behandelt.
Wenn ich es richtig verstehe, besteht die Idee darin, ein Werkzeug zu erstellen, das die Cachegrind-Ausgabe analysiert und in Flammenkurven anzeigt. Das hört sich machbar an ... – johndodo
Es scheint nicht so, als gäbe es ein fertiges Tool, das mit PHP erstellt wurde, aber vielleicht kann es kcachegrind ... – n00dl3
und um deine Frage zu beantworten, ja, das war's! – n00dl3
- 1. Wie erzeugt man eine große Excel-Datei mit PHP?
- 2. Wie man saubere URLs mit mod_rewrite erzeugt
- 3. Wie man Permutationen erzeugt?
- 4. Wie man Methodensignatur erzeugt?
- 5. Wie Bilder zwischenspeichern dynamisch mit PHP erzeugt?
- 6. Wie man Maschinencode mit llvm erzeugt
- 7. Wie man mapping.txt mit Eclipse erzeugt?
- 8. Wie man Methode mit unbekannten Parametern erzeugt?
- 9. Wie erzeugt man Typhierarchie-Diagramme mit Scaladoc?
- 10. Wie man Funktionssignaturen mit Sphinx erzeugt?
- 11. Wie man Bilddatei mit C++ gnuplot erzeugt?
- 12. Wie man eine Gitarrennote erzeugt
- 13. PHP erzeugt Doctype Problem mit XSLT
- 14. Wie erzeugt man eine CSV-Datei mit akzentuierten Zeichen mit PHP?
- 15. wie man gekippten Text wie diesen erzeugt -
- 16. Wie man `DOS/Unix` erzeugt Wie GUI
- 17. Nicht PHP-Website erzeugt PHP Fehler
- 18. Wie Objekte in PHP erzeugt zu halten, wenn XMLHttpRequest mit
- 19. Wie man Daten von Normalverteilung erzeugt
- 20. Wie man eine GUID in VBScript erzeugt?
- 21. Wie man JSon in Gatling dynamisch erzeugt?
- 22. PHP: implodieren ('\ n', $ appArray) erzeugt zusätzliche '\'
- 23. Wie man verbindliche Proxies dynamisch erzeugt?
- 24. Wie man spezifische Daten von der Webseite erzeugt?
- 25. Wie man eine Dateigruppe "dynamisch" erzeugt?
- 26. Wie man Javadoc von der Befehlszeile erzeugt
- 27. Python: Wie man eine zufällige Telefonnummer erzeugt?
- 28. Wie man Codebeispiele von einer Grammatik erzeugt?
- 29. Delphi 7: Wie man Klassenhierarchie erzeugt?
- 30. Wie erzeugt man zufällige Farben in Matplotlib?
Brendan Gregg hat eine [* viel zu sagen *] (http://www.brendangregg.com/FlameGraphs/cpuflamegraphs) über Flammengraphen, wenn das hilft. Persönlich sind sie meiner Meinung nach überbewertet. Sie necken Sie mit hübschen farbigen Pixeln, aber Dinge, die Sie beheben können, um den Code zu beschleunigen, können sich leicht vor ihnen verstecken *) (http://stackoverflow.com/a/25870103/23771). –
@MikeDunlavey: Ich interessiere mich auch nicht für hübsche Pixel, aber ich stimme auch nicht mit Ihrer Einschätzung von Flammengraphen als Augenschmaus überein. Sie machen * einige * (nicht alle!) Profiling-Aufgaben viel einfacher, was für mich in Ordnung ist. Wissen Sie, wie ich sie für PHP-Web-Apps erstellen kann? :) – johndodo
Wenn ich sie machen wollte, würde ich eine Menge Stack-Samples sammeln (zur Wanduhrzeit, nicht zur CPU). Betrachte jedes Sample als eine lange Zeichenfolge, würde ich sie nur in lexikalischer Reihenfolge sortieren. Weisen Sie dann jeder einzelnen Funktion eine Farbe zu. Dann müssen Sie nur noch die sortierte Liste durchsuchen und jede Routine als farbiges Rechteck darstellen. Mein einziger Punkt ist, wenn Sie tatsächlich Geschwindigkeit brauchen, wenn sogar nur eine von fünf Beschleunigungen Ihrer Aufmerksamkeit entgeht, wird es verhindern, dass Sie die gewünschte Geschwindigkeit um einen großen Faktor erhalten. Denn nachdem Sie andere gereinigt haben, werden diejenigen, die Sie nicht bekommen, dominant. –