PHP Performance Debugger für Mac

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • entwickler schrieb:

    20 und mehr Abfrage pro Seitenaufbau (20 x 50 = 1000 Abfraen).
    Sind echt IMMER 20+ notwendig? Könnte man auch das Ergebnis der Abfrage, das ja verarbeitet HTML ergibt nicht unter Umständen Cachen? Insbesondere dann, wenn es immer das gleiche HTML ergibt..., dann ersparst Du Dir die Abfrage und den Prozess für die Umwandlung in HTML.
    Nachtrag: Was sich insbesondere dann bemerkbar macht, wenn dort noch Platzhalter drin sind, die jedesmal per Suchen/Ersetzen mit Inhalten ersetzt werden.

    Ansonsten kann man selbstverständlich auch Lasttests durchführen, mit einer beliebien Anzahl an Clients. Such mal nach Lasttest/Lastgenerator für apache.

    Das Tracelog von xdebug ist schnell ausgewertet. Wenn Du sagst, das es normal 200 ms Sekunden sind, dann hast Du bestimmt schon eine gute Verteilung in dem Trace. Den kannst Du zur Not auch kurz in Excel importieren und die Unterschiede zwischen den Zeiten berechnen. Dann ist es einfacher, weil Du gleich siehst bzw. sortieren kannst, welche Methode am meisten Zeit kostet.

    Und ansonsten kann ich nur einen Server mit 2 SSD/Raid1 empfehlen. Insbesondere dann, wenn Du dich für das cachen entscheidest. Aber alles andere wird natürlich auch schneller.
    Cachen geht eben nicht. Die Daten können sich sekündlich ändern.

    Es geht dabei um eine Wartungsplanung von ca. 64000 Systemen. Da werden ständig Dinge geändert. Und da für jede Wartung X Techniker und X Tools benötigt werden und der System-Betreiber meistens auch noch bestimmte Vorstellungen hat, an welchen Tagen oder zu welchen Zeiten seine Wartung stattfinden soll, ist das Ganze halt ziemlich komplex.

    Naja ich werde mich halt durchbeissen.
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Thallius schrieb:

    Es geht dabei um eine Wartungsplanung von ca. 64000 Systemen.
    Na, aber in den Übersichten, werde ja nicht 64.000 Systeme angezeigt, sondern doch wohl eher kummulierte Daten und dafür lohnt es sich häufig für solche Ansichten weitere Tabellen anzulegen, wo die MySQL Optimierung an ihre Grenzen kommt, was absolut normal ist und sinnvoll ist.

    Hier in dem Forum wird sicher auch nicht jeweils beim Seitenaufruf gezählt, wie viel Beiträge oder Likes ich habe... da gibt es eine extra Spalte in meinem Profil dafür, die zusätzlich mitzählt. Manchmal muss man de-normalisieren, um Performance zu erreichen.

    Ansonsten schon mal ein schönes Wochenende.
  • entwickler schrieb:

    gritsch schrieb:

    übrigens finde ich 200 ms extrem langsam. Egal was da zusammengesucht werden muss.
    ich wollte es nicht sagen... Aber so GANZ egal ist es nicht, was da zusammengesucht wird und es ist ja nicht eine Abfrage, sondern 1000 ;)
    Und ja, vermutlich kann man da eine Menge optimieren.
    1000 anfragen um eine seite aufzubauen? Dann kann das nur falsch programmiert sein. Und auch schon wenn es 50 sind bin ich mir nicht sicher ob das so sinnvoll ist.
    Und trotzdem sind dann 200 ms (pro seitenaufbau) noch viel zu viel.
  • Grundsätzlich stimme ich mit dir überein. Insbesondere dann, wenn es auf jeder Seite so ist.

    Aber manchmal muss man einfach mal viele Abfragen durchführen. Wenn ich einen Verlaufsdiagramm von bestimmten Aktionen über ein Jahr darstelle, dann baue ich immer eine temporäre Tabelle mit den Jahrestagen auf und mache dann tatsächlich für jeden Tag ein Count auf die Tabelle mit den Aktionen. Bei zwei Jahren Rückblick passiert das dann halt 720 mal... dauert, geht aber und das Diagramm findet echt Begeisterung, weil man dort viel über den Zeitraum sehen kann.
    Und abgesehen davon, das ich natürlich diese vergangenen Tage speichern könnte und beim nächsten Mal nicht zählen muss, wüsste ich nicht, wie man das besser machen kann. (ohne diesen Thread jetzt splitten zu wollen)
  • entwickler schrieb:

    Grundsätzlich stimme ich mit dir überein. Insbesondere dann, wenn es auf jeder Seite so ist.

    Aber manchmal muss man einfach mal viele Abfragen durchführen. Wenn ich einen Verlaufsdiagramm von bestimmten Aktionen über ein Jahr darstelle, dann baue ich immer eine temporäre Tabelle mit den Jahrestagen auf und mache dann tatsächlich für jeden Tag ein Count auf die Tabelle mit den Aktionen. Bei zwei Jahren Rückblick passiert das dann halt 720 mal... dauert, geht aber und das Diagramm findet echt Begeisterung, weil man dort viel über den Zeitraum sehen kann.
    Und abgesehen davon, das ich natürlich diese vergangenen Tage speichern könnte und beim nächsten Mal nicht zählen muss, wüsste ich nicht, wie man das besser machen kann. (ohne diesen Thread jetzt splitten zu wollen)
    oft ist es in solchen fällen aber schneller wenn man sich einfach "zuviel" daten aus der DB holt (RAM hat man ja genug) und diese dann mit PHP "filtert".
  • gritsch schrieb:

    oft ist es in solchen fällen aber schneller wenn man sich einfach "zuviel" daten aus der DB holt (RAM hat man ja genug) und diese dann mit PHP "filtert".
    jup. korrekt. meine Variante ist so gewachsen... fällt am Anfang ja überhaupt nicht auf, nur dann wenn es immer mehr Tage werden... und auch dann ist es halt jeden Tag nur ein paar Millisekunden mehr... da passt sich der Mensch schnell an. ich werde mir das mal vornehmen. Auch wenn man bei mir nur alle 10 Tage draufguckt, das könnte sich vom Aufwand lohnen.
  • entwickler schrieb:

    gritsch schrieb:

    oft ist es in solchen fällen aber schneller wenn man sich einfach "zuviel" daten aus der DB holt (RAM hat man ja genug) und diese dann mit PHP "filtert".
    jup. korrekt. meine Variante ist so gewachsen... fällt am Anfang ja überhaupt nicht auf, nur dann wenn es immer mehr Tage werden... und auch dann ist es halt jeden Tag nur ein paar Millisekunden mehr... da passt sich der Mensch schnell an. ich werde mir das mal vornehmen. Auch wenn man bei mir nur alle 10 Tage draufguckt, das könnte sich vom Aufwand lohnen.
    das kenne ich. läuft ein system mal 10 jahre lang und jeden tag kommen abertausende neue einträge dazu wird das irgendwann langsam bei bestimmten abfragen.
    irgendwann fügt man dann eine number-column hinzu die das datum als intwert-enthällt um die datumsabfragen zu beschleunigen etc...