Ole: Bearbeitungszeit ausgeben

Hallo,

ich begebe mich grade auf Neuland und versuche mein Glück ein wenig mit PHP...genauer mit der Analyse der Ausführungszeiten einzelner Queries, Includes und Seiten.

Ich komme ja bekanntlich aus dem ColdFusion-Lager und der ColdFusion-Server bietet einem ja eine sehr komfortable Möglichkeit einfach die Laufzeiten aller Queries und Komponenten am Ende des Dokuments schön aufbereitet auszugeben.

Gibt es sowas auch für PHP oder den Apache?

Grüße
Ole
(8-)>

--
Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.
  1. echo $begrüßung;

    ich begebe mich grade auf Neuland und versuche mein Glück ein wenig mit PHP...genauer mit der Analyse der Ausführungszeiten einzelner Queries, Includes und Seiten.
    Gibt es sowas auch für PHP oder den Apache?

    Nicht mit den mitgelieferten Mitteln. Aber such doch mal nach "PHP Profiler". Du wirst dann sicher bei Xdebug vorbeikommen und bei phpdbg.

    echo "$verabschiedung $name";

  2. Hallo Ole,

    ich begebe mich grade auf Neuland und versuche mein Glück ein wenig mit PHP...genauer mit der Analyse der Ausführungszeiten einzelner Queries, Includes und Seiten.

    Ich komme ja bekanntlich aus dem ColdFusion-Lager und der ColdFusion-Server bietet einem ja eine sehr komfortable Möglichkeit einfach die Laufzeiten aller Queries und Komponenten am Ende des Dokuments schön aufbereitet auszugeben.

    Gibt es sowas auch für PHP oder den Apache?

    Es gibt XDebug, damit kann man auch Profiling betreiben. Du brauchst aber die volle Kontrolle über die PHP-Installation um das verwenden zu können, d.h. das ist nur was für Deine Entwicklungsumgebung - zudem macht's die Ausführung allgemein langsamer.

    Ansonsten kannst Du natürlich immer mit microtime() in PHP selbst messen - aber das willst Du wohl kaum. ;-)

    Viele Grüße,
    Christian

  3. Aloha,

    danke...ich hab mir jetzt mal Xdebug heruntergeladen und installiert.

    Dabei ergibt sich schon die erste Frage.

    Wenn ich die DLL (ja, Windows mit Apache) in der php.ini mit

    zend_extension_ts="c:/php/modules/php_xdebug-2.0.2-5.2.5.dll"

    einbinde, wird mir nichts beim aufruf von phpinfo() ausgegeben, binde ich es jedoch wie die anderen Extensions mittels

    extension=php_xdebug-2.0.2-5.2.5.dll

    ein, bekomme ich einen längeren Eintrag welcher allerdings mit dem Eintrag
    "XDEBUG NOT LOADED AS ZEND EXTENSION"
    geschmückt wird.

    Ist es schlimm und/oder beeinflusst es die Funktionsweise wenn es nicht als Zend Extension eingebunden wird?

    Und wenn ich schon mal am Fragen dran bin...wie gebe ich die Daten aus? ICh steige durch die Doku noch nicht so ganz durch.

    Danke & Gruß
    Ole
    (8-)>

    --
    Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.
    1. Hallo Ole,

      Wenn ich die DLL (ja, Windows mit Apache) in der php.ini mit

      zend_extension_ts="c:/php/modules/php_xdebug-2.0.2-5.2.5.dll"

      einbinde, wird mir nichts beim aufruf von phpinfo() ausgegeben,

      Hast Du schonmal zend_extension="..." probiert, also ohne _ts?

      binde ich es jedoch wie die anderen Extensions mittels

      extension=php_xdebug-2.0.2-5.2.5.dll

      ein, bekomme ich einen längeren Eintrag welcher allerdings mit dem Eintrag
      "XDEBUG NOT LOADED AS ZEND EXTENSION"
      geschmückt wird.

      Ist es schlimm und/oder beeinflusst es die Funktionsweise wenn es nicht als Zend Extension eingebunden wird?

      Ja. Dann steht Dir eine Menge Funktionalität nicht zur Verfügung, die Dir sonst zur Verfügung stünde.

      Viele Grüße,
      Christian

      1. Hi

        Hast Du schonmal zend_extension="..." probiert, also ohne _ts?

        Ja, es erscheint allerdings auch damit kein Eintrag :(

        Lediglich und "PHP Core" steht
        report_zend_debug On On
        das steht aber auch so da, wenn ich das richtig überblicke.

        Ja. Dann steht Dir eine Menge Funktionalität nicht zur Verfügung, die Dir sonst zur Verfügung stünde.

        Ärgerlich.

        Muss man bei PHP etwas besonderes machen, damit Extensions als Zend-Extensions eingebunden werden können?

        Danke
        Ole

        --
        Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.
        1. Hallo Ole,

          Muss man bei PHP etwas besonderes machen, damit Extensions als Zend-Extensions eingebunden werden können?

          Eigentlich nicht, ich habe das allerdings auch nie unter Windos probiert (dort nur normale Extensions), und unter Linux hatte ich damit noch nie Probleme... zumindest nicht wie Du sie hast (wird nicht geladen, obwohl Eintrag da ist).

          Wo hast Du denn den zend_extension- / zend_extension_ts-Eintrag hingetan? Der gehört im Prinzip ziemlich an den Anfang des Bereichs [PHP] (am besten ganz oben ;-)). Zudem: Stimmt der dort angegebene Pfad auch wirklich?

          Viele Grüße,
          Christian

          1. Hallo Christian,

            Problem erkannt, problem gebannt. Ich hatte ein Anführungszeichen vergessen zu kopieren *grummel*...ist doch immer das gleiche ;).

            Der Eintrag funktioniert jetzt auch mit _ts...alles prima.

            Kommt das nächste Problem...die Ausgabe.

            Ich werde aus der Doku nicht ganz schlau.

            Verstehe ich es soweit richtig, dass ich das Script

              
            <?php  
            $str = "Xdebug";  
            function ret_ord( $c )  
            {  
                return ord( $c );  
            }  
              
            foreach ( str_split( $str ) as $char )  
            {  
                echo $char, ": ", ret_ord( $char ), "\n";  
            }  
            ?>  
            
            

            ans Ende meiner Seite packen muss?

            Gruß
            Ole

            --
            Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.
            1. Hallo Ole,

              Ich werde aus der Doku nicht ganz schlau.

              Verstehe ich es soweit richtig, dass ich das Script
              [...]
              ans Ende meiner Seite packen muss?

              Nein, der Code hat nichts mit Profiling zu tun, außer, dass es evtl. eine Demo für Code ist, der geprofiled werden kann. ;-)

              Wie auch in http://www.xdebug.org/docs/profiler steht, musst Du bestimmte ini-Optionen richtig einstellen (xdebug.profiler_enable = 1, xdebug.profiler_output_dir = "c:/pfad/zum/verzeichnes/wo/die/profiling/infos/abgelegt/werden/sollen"). Dann werden im angegebenen Verzeichnis Dateien abgelegt, sobald PHP-Scripte ausgeführt werden. Diese kannst Du dann mit Programmen wie KCacheGrind (für KDE) oder WinCacheGrind (für Windows) betrachten.

              Viele Grüße,
              Christian

              1. Nabend Christian,

                Jetzt habe ich es ansatzweise verstanden.
                Vielen Dank...jetzt muss ich nur noch die Ausgabe verstehen ;)

                Danke
                Ole
                (8-)>

                --
                Das Wort Vegetarier kommt aus dem Indianischen und bedeutet: Zu dumm zum Jagen.