Loading:


    Jak policzyć czas wykonywania skryptu, generowania strony PHP

    Aby policzyć czas wykonania skryptu użyje funkcji getmicrotime().



    Napisz Artyku³

    Listing


    <?php
    // zapisujemy czas początkowy
    $start = microtime();
    /* właściwa część kodu */
    // np. pętla "nicnierobiąca" z milionem iteracji
    for($i=1;$i<=1000000;$i++);
    /* właściwa część kodu - koniec */
    // zapisujemy czas końcowy
    $koniec = microtime();
    // proste operacje na zapisanych czasach
    // w celu wyswietlenia gotowego wyniku
    $start = explode(' ', $start);
    $koniec = explode(' ', $koniec);
    $roznica = ($koniec[0]+$koniec[1])-($start[0]+$start[1]);
    // wyświetlenie wyniku
    echo 'Skrypt wykonał się w '.$roznica.' sekund.';
    ?>




    Dodano przez: igor
    Ranga: Administrator serwisu Punktów: 0
    Komentarze użytkowników
    Czy da się jakoś ograniczyć liczbę cyfr po przecinku np. do pięciu?
    autor: Mayke512 | 114 | 2009-03-06 20:20:41


    Tak, wystarczy później dodać podany skrypt:
    autor: Divix | 115 | 2009-03-06 20:43:02


    chyba coś mi nie wyszło bo nie działa ;p
    • Zobacz kod dodany do tego wpisu
      • <?php
        // zapisujemy czas początkowy
        $start = microtime();
        /* właściwa część kodu */
        // np. pętla "nicnierobiąca" z milionem iteracji
        for($i=1;$i<=1000000;$i++);
        /* właściwa część kodu - koniec */
        // zapisujemy czas końcowy
        $koniec = microtime();
        // proste operacje na zapisanych czasach
        // w celu wyswietlenia gotowego wyniku
        $start = explode(' ', $start);
        $koniec = explode(' ', $koniec);
        $nowa_roznica = round($roznica, 5); //gdzie 5 wskazuje ilość liczb po przecinku
        $roznica = ($koniec[0]+$koniec[1])-($start[0]+$start[1]);
        // wyświetlenie wyniku
        echo 'Wygenerowano w '.$roznica.' sekund.'; ?>
    autor: Mayke512 | 118 | 2009-03-10 14:21:04


    Właśnie sprawdziłem działa OK, i to z tego kodu co wkleiłeś, więc nie wiem :}
    autor: Igor | 119 | 2009-03-10 15:45:26


    No to nie wiem :) Sprawdziłem na localhost, sprawdziłem na ftp i nigdzie nie działa. Nic sie nie zmienia ciągle mam: Wygenerowano w 0.15702104568481 sekund (i podobne liczby) Może da się to zrobić jakoś inaczej? ;p
    autor: Mayke512 | 120 | 2009-03-10 17:09:42


    Źle robisz należy dać zmienną $nowa_roznica tuż przed echo, oraz wyświetlić $nowa_roznica zmienną, tak jak tutaj:
    • Zobacz kod dodany do tego wpisu
      •     *
              <?php
              // zapisujemy czas początkowy
              $start = microtime();
              /* właściwa część kodu */
              // np. pętla "nicnierobiąca" z milionem iteracji
              for($i=1;$i<=1000000;$i++);
              /* właściwa część kodu - koniec */
              // zapisujemy czas końcowy
              $koniec = microtime();
              // proste operacje na zapisanych czasach
              // w celu wyswietlenia gotowego wyniku
              $start = explode(' ', $start);
              $koniec = explode(' ', $koniec);
              $roznica = ($koniec[0]+$koniec[1])-($start[0]+$start[1]);
              $nowa_roznica = round($roznica, 5); //gdzie 5 wskazuje ilość liczb po przecinku
              // wyświetlenie wyniku
              echo 'Wygenerowano w '.$nowa_roznica.' sekund.'; ?>
         
    autor: Divix | 121 | 2009-03-10 17:19:06


    Znalazłem w googlach nieco inaczej i działa ;p Daje kod, może się komuś przyda (opisałem najważniejszą funkcje)
    • Zobacz kod dodany do tego wpisu
      • <html>

        <?php
        function cgs()
        {
        $czas = explode(" ", microtime());
        $a = (double)$czas[0];
        $b = (double)$czas[1];
        return $a + $b;
        }
        $start = cgs();
        ?>

        <?php
        $koniec = cgs();
        $ile = $koniec - $start;
        echo "Strona wygenerowana w " . substr($ile, 0, 5) . " sek."; // 5 to liczba znaków w wyniku czyli np. 2.5968 to 6 znaków.
        ?>

        </html>
    autor: Mayke512 | 122 | 2009-03-10 17:22:40


    Prosty sposób - dwie linie. W s., 5 miejsc po przecinku.
    autor: Dawid Madzia | 424 | 2009-08-20 10:51:22


      • Tre¶æ komentarza
        Kod do komentarza (opcjonalnie)
        PHP JavaScript MySQL Smarty SQL HTML CSS ActionScript
        Autor
        Token
        token

         

         








    funkcje.net
    Wszelkie prawa zastrzeżone©. | Funkcje.net 2008-2025 v.1.5 | design: diviXdesign & rainbowcolors