Ergebnis 1 bis 6 von 6

Thema: [Tutorial] PHP & MySQL Ladezeit anzeigen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717

    Idee [Tutorial] PHP & MySQL Ladezeit anzeigen

    Voraussetzungen: PHP > 4


    Datei: index.php

    nach <? folgende Zeilen einfügen:
    PHP-Code:
    $start_time microtime(true);
    $sql_time 0
    Datei: lib/functions.lib.php

    Die Funktion db_query($sql_tag) mit folgender ersetzen:

    PHP-Code:
    // Mysql Querys
    function db_query($sql_tag){
    global 
    $count_query,$sql_time;

        
    $sql_start microtime(true);
        
    $count_query++;
        
    $vargs = array();
        
    $fargs func_get_args();
        foreach(
    $fargs as $key => $arg){
          
    $vargs[$key] = mysql_real_escape_string($arg);
        }
        
    array_shift($vargs);
        if(!empty(
    $vargs)){
        
    $sql_tag vsprintf($sql_tag,$vargs);
        }
        if(
    $ret mysql_query($sql_tag)){
          
    $sql_time += microtime(true) - $sql_start;
          return 
    $ret;
        }else{
          
    $sql_time += microtime(true) - $sql_start;
          return 
    0;
        }

    Datei: lib/footer.php

    suche:
    PHP-Code:
    <?=$count_query;?> MySQL Abfragen
    <!-- Fussnote -->
    ersetze mit:
    PHP-Code:
    <?php
    $ende_time 
    microtime(true);
    $ges_time $ende_time $start_time;
    $php_time $ges_time $sql_time
    ?>
    <?=$count_query
    ;?> MySQL Abfragen | PHP: <?=number_format($php_time,4,',','.');?> s | SQL: <?=number_format($sql_time,4,',','.');?> s
    <!-- Fussnote -->
    --

    In PHP4 muss man die Funktion microtime(true) umschreiben:

    PHP-Code:
    function microtime_float()
    {
        list(
    $usec$sec) = explode(" "microtime());
        return ((float)
    $usec + (float)$sec);

    dass ganz am anfang in der index.php einfügen und dann alle aufrufe von microtime(true) durch microtime_float() ersetzen.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  2. #2
    Erfahrener Benutzer
    Registriert seit
    20.06.2007
    Beiträge
    1.905
    Ivh habe es getest und es gefällt und funkioniert super

    EDIT : Getestet nur unter Php : 5.2.x

    MFG
    adi

  3. #3
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147
    getestet und geht nich gg hab php 4 muste also das letzte noch machen was ich nich wirklich raffe so sehen meine codes aus

    Index
    PHP-Code:
    <?
    function microtime_float()
    {
        list($usec, $sec) = explode(" ", microtime());
        return ((float)$usec + (float)$sec);
    }  
    $start_time = microtime_float();
    $sql_time = 0; 
    if (isset ($_GET['content']) && !empty ($_GET['content'])) {
        if (strpos ($_GET['content'], '../') !== FALSE) die ('Zugriffsverletzung !');
        if ($_GET['content']{0} != '/') $_GET['content'] = '/'.$_GET['content'];
    }

    require ( './lib/header.php' );
    require ( './content'.$_GET['content'].'.php' );
    require ( './lib/footer.php' );
    ?>
    functionslib
    PHP-Code:
    // Mysql Querys
    function db_query($sql_tag){
    global 
    $count_query,$sql_time;

        
    $sql_start microtime_float();
        
    $count_query++;
        
    $vargs = array();
        
    $fargs func_get_args();
        foreach(
    $fargs as $key => $arg){
          
    $vargs[$key] = mysql_real_escape_string($arg);
        }
        
    array_shift($vargs);
        if(!empty(
    $vargs)){
        
    $sql_tag vsprintf($sql_tag,$vargs);
        }
        if(
    $ret mysql_query($sql_tag)){
          
    $sql_time += microtime_float() - $sql_start;
          return 
    $ret;
        }else{
          
    $sql_time += microtime_float() - $sql_start;
          return 
    0;
        }

    und footer

    PHP-Code:
    <?php
    $ende_time 
    microtime_float();
    $ges_time $ende_time $start_time;
    $php_time $ges_time $sql_time
    ?>
    <?=$count_query
    ;?> MySQL Abfragen | PHP: <?=number_format($php_time,4,',','.');?> s | SQL: <?=number_format($sql_time,4,',','.');?> s
    <!-- Fussnote -->

    </td></tr></table>
    </body>
    </html>
    <?
    db_close();
    if ($gzip_rate > 0) ob_end_flush();  
    ?>

    was habe ich falsch das die seite so voller fehler is
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  4. #4
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    die fehler(meldungen) wären auch noch ganz interessant.

    also die version für php5 funzt, da ersetzen hast du an sich, so wie ich das sehe, richtig gemacht für php4, ob die funktion an sich (microtime_float() ) funzt, kann ich nicht sagen, habe die aber von hier übernommen:

    http://www.php.net/microtime

    Diese Funktion steht nur auf Systemen zur Verfügung, die den Systemaufruf gettimeofday() unterstützen.
    evtl könnte es noch daran liegen?
    wie gesagt, poste mal die errormessages, evtl auch noch error_reporting(E_ALL); mal an anfang setzen.
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

  5. #5
    Administrator Avatar von Lokutos
    Registriert seit
    29.03.2008
    Beiträge
    3.147
    error messenge hab ich keine einfach die shoutbox wird nicht mehr angezeigt die userliste im admin geht nimmer etc aber alles ohne irgend ein fehlercode
    SwissNetWorX - VMS Hosting / V-Server / Cloud-Server / Hosting

  6. #6
    Erfahrener Benutzer Avatar von jpwfour
    Registriert seit
    06.02.2008
    Beiträge
    3.717
    mal ganz an anfang error_reporting(E_ALL); setzen (index.php).

    aber manche sachen gehen noch??
    Kill one man, and you are a murderer.
    Kill millions of men, and you are a conqueror.
    Kill them all, and you are a god.
    - Jean Rostand, Thoughts of a Biologist (1939)

Ähnliche Themen

  1. MYSQL Fehler nach MySQL Version update
    Von Neuroblastom im Forum [HD] Programmieren
    Antworten: 2
    Letzter Beitrag: 20.01.2016, 00:51
  2. Paidbannerbereich ladezeit! Brauche hilfe!
    Von TopMailerde im Forum Support zum VMSone
    Antworten: 2
    Letzter Beitrag: 30.03.2008, 20:59
  3. Antworten: 2
    Letzter Beitrag: 27.02.2008, 18:14
  4. Ladezeit im Klick4-Bereich
    Von Baumeister im Forum Support zum VMSone
    Antworten: 35
    Letzter Beitrag: 06.09.2007, 23:00

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •