Profil | Mitglieder | Registrieren | Start | Suche


PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Laufzeit    » Hallo Gast [Login | Registrieren]

Neues Thema | Antworten   

Autor Beitrag
Andavos
Administrator
Foren-Gott


Dabei seit: 30.11.2003
Herkunft:
Posts: 6298
     Laufzeit Zitat | Bearbeiten

Hiermit kann man die Laufzeit eines Scripts ermitteln.

Oft ist es intressant zu erfahren, wie lange ein bestimmte Code-Abschnitt zu Ausführung benötigt.
Somit kann man seine Scripts optimieren, und langsame Funktionen erkennen.

Die Laufzeit von einem Code-Abschnitt oder des ganzen Programmes kann man sehr einfach ermitteln:
 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
<?php
$start 
time()+(double)microtime();

//Ganz viele PHP Anweisungen, z.B.
for($i=0;$i<100000;$i++);

$ende time()+(double)microtime();

//Differenz bilden und runden
$diff round($ende-$start,6); 
echo 
$diff." Sekunden";
?>



www.php-einfach.de, PHP lernen leicht gemacht
www.webhosterwissen.de, Webhosting-Vergleich





Post wurde schon 1x editiert, das letzte mal am 17.12.2005 um 17:56 von Andavos
25.11.2005, 18:02 Profil | PM | E-Mail  
Gast


     Falsche ausgbe!! Zitat | Bearbeiten

ich bekome zb als ausgabe: 1169048595.1589 Sekunden

und das ist bestimmt falsch!!


17.01.2007, 16:45  
Quietscheente
Mitglied
Sehr guter User


Dabei seit: 13.02.2005
Herkunft: Karlsruhe
Posts: 939
      Zitat | Bearbeiten

das sieht sehr danach aus, als würde $start nicht wieder abgezogen werden. Aber konkret kann man dir nur mit deinem ganzen Code helfen.


17.01.2007, 20:14 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

Zitat:
Orginal von Quietscheente
das sieht sehr danach aus, als würde $start nicht wieder abgezogen werden. Aber konkret kann man dir nur mit deinem ganzen Code helfen.



Das ist der ganze code wie er oben steht, was meinst du damit das start nicht wieder abgezogen wird?


28.01.2007, 14:23  
Quietscheente
Mitglied
Sehr guter User


Dabei seit: 13.02.2005
Herkunft: Karlsruhe
Posts: 939
      Zitat | Bearbeiten

Du musst ja ganz oben bei deinem Script die Variable start definieren mit:
 PHP 
1:
$start = time()+(double)microtime();
danach kommt ganz viel Code...
und am Ende deines Scriptes muss dann folgendes stehen:
 PHP 
1:
2:
3:
4:
5:
$ende = time()+(double)microtime(); 

//Differenz bilden und runden 
$diff = round($ende-$start,6);  
echo $diff." Sekunden";
Wenn du es so hast, dann funktioniert es. Allerdings kann man ohne Script nichts machen. Falls dir dein Script zu heilig sein sollte, dann wende dich per privater Forennachricht an wen auch immer (z.B. Andavos, Valentin oder auch an mich)


28.01.2007, 15:30 Profil | PM | E-Mail  
Chacky
Mitglied
Sehr guter User


Dabei seit: 08.09.2006
Herkunft:
Posts: 561
      Zitat | Bearbeiten

ich habs genauso gemacht wie es oben steht...aber bei mir kommt immer nur sowas:
5.2E-05 Sekunden

...Chacky


- Nicht mehr aktiv in diesem Forum -
06.04.2007, 14:59 Profil | PM | E-Mail  
raven
Mitglied
Gruenling


Dabei seit: 13.12.2006
Herkunft: "D"
Posts: 15
      Zitat | Bearbeiten

ich hatte ein ähnliche Problem !

probier mal die variable $start oder $ende umzuebnen
vielleicht sind die schon bei dir vergeben!

so war es bei mir !


http://www.no-limit.de.pn- mein kleines Probe script.
(Hier probier ich alles neue aus) Würde mich über Vorschläge und Kritiken freuen.
06.06.2007, 22:09 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

Also ich weiß nicht was ihr macht, aber bei mir klappt das nach obigem Format wunderbar...


15.08.2007, 10:25  
Gast


      Zitat | Bearbeiten

bei mir erscheint bei einer seite 1248983509.0379 Sekunden, ansonsten nur 0.0017 und sowas


30.07.2009, 21:53  


Neuling


Dabei seit: 01.01.1970
Herkunft:
Posts:
      Zitat | Bearbeiten

Bei mir funktioniert das Skript einwandfrei!


30.07.2009, 23:05 Profil | PM | E-Mail  
Morpheus267
Mitglied
Guter User


Dabei seit: 06.05.2009
Herkunft: keine Angabe
Posts: 278
      Zitat | Bearbeiten

Jop funzt sehr gut. ^^


24.09.2009, 23:22 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

vieleicht benutzen diejenigen, die so hohe zahlen bekommen für die Variabeln $start oder $ende schon andere Werte, welche dann dazugerechnet werden....


30.12.2009, 12:38  
looper
Mitglied
Guter User


Dabei seit: 27.01.2008
Herkunft: keine Angabe
Posts: 262
      Zitat | Bearbeiten

einfach drauf achten, dass ihr im code die variablen nicht nochmal benutzt?


~looper
lala, wieder da, hihi
30.12.2009, 16:14 Profil | PM | E-Mail  
splasch
Mitglied
Exzellenter User


Dabei seit: 16.06.2008
Herkunft: Austria
Posts: 2323
      Zitat | Bearbeiten

Also ich mach das Eigentlich immer so:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
<?
function getmicrotime(){
  list(
$usec$sec) = explode(" ",microtime());
  return ((float)
$usec + (float)$sec);
}

$Startzeit=getmicrotime();

# Hier der Teil der Gemessen werden soll also das Script.

$Endzeit=getmicrotime();

$Zeit=$Endzeit-$Startzeit;
echo 
"Zeit:".$Zeit;    


Mfg Splasch




Post wurde schon 1x editiert, das letzte mal am 30.12.2009 um 21:36 von splasch
30.12.2009, 21:36 Profil | PM | E-Mail  
B.C.
Mitglied
Sehr guter User


Dabei seit: 04.02.2009
Herkunft: Niedersachsen
Posts: 797
      Zitat | Bearbeiten

Hi,

ich benutze eine Klasse, ähnlich wie diese:
http://www.forum.php-einfach.de/thread.php?threadid=4073&extra=last&


30.12.2009, 21:55 Profil | PM | E-Mail  
Gast


      Zitat | Bearbeiten

mal eine Klasse dazu.

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
<?php
class laufzeit {
    private 
$startzeit NULL;

    private function 
mikrozeit() {
        return 
time()+(double)microtime();
    }

    public function 
__construct() {
        
$this -> startzeit $this -> mikrozeit();
    }

    public function 
ausgeben() {
        return 
round($this -> mikrozeit() - $this -> startzeit6);
    }
}
?>


Nutzung:

 PHP 
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?php
$laufzeit 
= new laufzeit();# Start der Messung
#Ganz viel PHP
echo $laufzeit -> ausgeben().' Sekunden <br />';
#Ganz viel PHP
echo $laufzeit -> ausgeben().' Sekunden <br />';
#Ganz viel PHP
echo $laufzeit -> ausgeben().' Sekunden <br />';
?>



07.07.2010, 01:03  
Seiten (1):  1 
PHP-Support.de » Programmierung » PHP & MySQL » Codeschnipsel » Laufzeit   

Neues Thema | Antworten   


Powered by Command Board 1.0 - Beta 2.0 © 2004-08 PHP-Einfach | Impressum | Datenschutz