cs_fabiano13
Messages postés262Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention27 février 2012
-
31 oct. 2008 à 18:40
cs_fabiano13
Messages postés262Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention27 février 2012
-
1 nov. 2008 à 10:06
Bonjour,
Je débute a peine aujourd'hui le PHP en ayant des bases assez solides en ASP. Je souhaiterai savoir comment calculer la vitesse de 2 pages PHP pour pouvoir comparer leur intervalle temps et ainsi déterminer celle qui s'exécute plus rapidement.
cs_jeca
Messages postés341Date d'inscriptionmercredi 17 juillet 2002StatutMembreDernière intervention14 juillet 201114 1 nov. 2008 à 09:18
Bonjour,
Tu mets cette fonction dans chacune des pages :
function temps()
{
$result = explode(' ', microtime());
$temps = $result[1] + $result[0];
return $temps;
}
Ensuite tu mets : $debut temps() en début de page, et $fin temps en fin de page, puis :
echo ($fin - $debut);
cs_fabiano13
Messages postés262Date d'inscriptionmardi 26 février 2002StatutMembreDernière intervention27 février 2012 1 nov. 2008 à 10:06
Merci pour ta réponse !
Voici ce que j'ai pu faire, il ne reste qu'a l'améliorer. Soit indulgent !
Optimisation-0.0.1 - TEST DE VITESSE
<?php
ini_set("max_execution_time", 600);
function start(){global $time_start; $time_start=getmicrotime();}
function stop(){global $time_start,$duration; $duration=getmicrotime()-$time_start;}
function getmicrotime(){list($usec, $sec) = explode(' ',microtime());return ((float)$usec + (float)$sec);}
function resultat($nb=150000, $txt = 'instructions'){global $duration; return 'Durée: ('.round($duration,5).' s.), soit une vitesse de '.round($nb/$duration).' '.$txt.' par seconde';}
function sCalculDuree($nb=150000){global $duration;return round($duration,5);}
function sCalculVitesse($nb=150000){global $duration;return round($nb/$duration);}
//Début de test 01
echo highlight_string("Script(1)",true) . "";
start();
//for ($i=0; $i < 10000; $i++) for ($j=0; $j < 100; $j++)
include("Script1.php");
stop();
flush();
$ResultatDuree1 = sCalculDuree();
$ResultatVitesse1 = sCalculVitesse();
//fin de test 01
//Début de test 02
echo "" . highlight_string("Script(2)",true) . "";
start();
//for ($i=0; $i < 10000; $i++) for ($j=0; $j < 100; $j++)
include("Script2.php");
stop();
flush();
$ResultatDuree2 = sCalculDuree();
$ResultatVitesse2 = sCalculVitesse();
//fin de test 02
//DEBUT DE CONCLUSION
if($ResultatVitesse1>$ResultatVitesse2){
echo "Conclusion : le Script(1) est plus rapide de : ";
echo $ResultatDuree2 - $ResultatDuree1;
echo " soit une vitesse supérieur de ";
echo $ResultatVitesse1 - $ResultatVitesse2;
echo " instructions par seconde !";
}else{
echo "Conclusion : le Script(2) est plus rapide de : ";
echo $ResultatDuree1 - $ResultatDuree2;
echo " secondes, soit une vitesse supérieur de ";
echo $ResultatVitesse2 - $ResultatVitesse1;
echo " instructions par seconde !";
}
//FIN DE CONCLUSION
?>
Page Script1.php
<?php
function fLanguages(){
if (!isset($_SESSION["Languages"])){
$fldLanguageDectecte = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$fldLanguageDectecte = $fldLanguageDectecte{0}.$fldLanguageDectecte{1};
switch ($fldLanguageDectecte){
case "fr":include("LangFr.xml");$_SESSION["Languages"]="LangFr.xml";break;
case "es":include("LangEs.xml");$_SESSION["Languages"]="LangEs.xml";break;
case "it":include("LangIt.xml");$_SESSION["Languages"]="LangIt.xml";break;
case "en":include("LangEn.xml");$_SESSION["Languages"]="LangEn.xml";break;
case "de":include("LangDe.xml");$_SESSION["Languages"]="LangDe.xml";break;
default:include("LangFr.xml");$_SESSION["Languages"]="LangFr.xml";break;
}}else{
include($_SESSION["Languages"]);
}
}
for ($i=0; $i < 1500; $i++) for ($j=0; $j < 100; $j++)
fLanguages();
?>