• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Script Zeitlänge berechnen

CGollhardt

Mitglied
Hi Community, war leider schon lange nicht mehr online, da ich in den letzten halben Jahr, bedingt durch meine Ausbildung mehr mit vb.Net zu tun hatte. Naja genug geredet.

Ich bin gerade dabei eine Clan Homepage zu entwickeln, und möchte dazu mit simplexml_load_file eine externe XML Datei auslesen, die Daten zu den einzelnen Spielern beinhaltet. Dies wird mit der Zeit komplexer werden, und ich möchte gerne wissen wie viele Externe Aufrufe ich in einem Script machen darf. Dazu würde ich gerne die Sekunden der Scriptdauer mir anzeigen lassen.

Mein vorübergehender Ansatz:
PHP:
<?php
//Session Modul starten
session_start();
//Standarts Definieren
header('content-type: text/html; charset=utf-8');
mt_srand ((double)SCRIPT_TIME * 1000000 );
$script_start = microtime();
//Klassen includieren
require("php/class/db.class.php");
require("php/class/validation.class.php");
//Funktionen includieren

//Einstellungen includieren
require('php/global/settings.inc.php');
//Datenbankobjekt erstellen
$db = new db ();
//Globals includieren
require('php/global/events.inc.php');
require('php/global/login.inc.php');
require('php/global/whitelist.inc.php');
//Seitenaufbau
require('php/design/header.inc.php');
require($content['pfad']);


 $xml = simplexml_load_file('http://xboxapi.duncanmackenzie.net/gamertag.ashx?GamerTag=CGollhardt');
 echo print_r($xml);
 sleep(3);

$time2 = microtime();
echo '<h1>' . ($time2 - $script_start) . ' Sekunden Script Zeit bis hier</h1>';


require('php/design/footer.inc.php');
?>

Ich habe die Variable $script_start mit der Zeit gefüllt und ziehe diese an der Stelle wo ich die Zeit gerne auslesen möchte von der Aktuellen Zeit ab. Zwischendrinn Stoppe ich das Script für 3 Sekunden.

Ich bekomme aber nur solche Werte:
Code:
-0.054276 Sekunden Script Zeit bis hier
0.384359 Sekunden Script Zeit bis hier
-0.845253 Sekunden Script Zeit bis hier
0.152275 Sekunden Script Zeit bis hier

Der Zweite würde ja schon gut aussehen, wenn ich das Ergebnis mit 10 multiplizieren würde, aber das kann ja nur Zufall sein. Bin mir nicht sicher ob ich das ganze am schluss mit 100 oder 1000 oder garnicht multiplizieren soll, aber das sieht man ja wenns funktioniert.

Google hat mir immer nur ausgespuckt das ich die zwei Zeiten von einander abziehen muss, so hatte ich es auch mir gedacht, aber alle bedanken sich auf die Threads aber keiner schreibt, dass es nicht funktioniert! Was mache ich falsch?

Provider: 1und1, Linux, php5, Paket busines 5.0

Hier könnt ihr es euch selbst ansehen:
http://clan.gollhardt.eu
 
Microtime ohne parameter gibt dir einen String zurück, welcher in der Form "msec sec" aufgebaut ist, mehr dazu im manual: [phpnet]microtime[/phpnet]
 
Vielen Dank, funktioniert jetzt super. Kaum zu glauben dass es überall falsch beschrieben wird..............Oo......
Für die nächsten User, die auf diesen Thread kommen nochmal die

Lösung
PHP:
$script_start = microtime(true);
//Script
$end_time = microtime(true);
echo '<h1>' . ($end_time - $script_start) . ' Sekunden Script Zeit bis hier</h1>';
 
und warum nicht gleich

PHP:
$script_start = microtime(true);
//Script
echo '<h1>' . (microtime(true) - $script_start)

schließlich brauchst du den wert nur einmal ;)
 
Zurück
Oben