Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2869 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Temps de generations d'une page, OK mais... bug !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Temps de generations d'une page, OK mais... bug !!

n°239831
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 14:52:39  profilanswer
 

Voila je fais ceci pour calculer le temps de generation d'une page :
 
En debut de page :
 
$TmpDeb=microtime();
 
En fin de page :  
 
$TmpFin=microtime();
 
Le calcul :
 
$TmpGen=$TmpFin-$TmpDeb;
echo $TmpGen;

 
bref ca marche...
 
mais de temps en temps $TmpGen a une valeur negative !!!  :heink:  
 
Dans la plupart des cas je vois bien un truc du genre 29 milli seconde , etc... mais parfois il me sort -700 milliseconde , une fois sur 15 +- !!!
 
Qqun a une explication a ce bug?
 
 
Merci
 

mood
Publicité
Posté le 05-11-2002 à 14:52:39  profilanswer
 

n°239833
charlene
Verba volant, scripta manent
Posté le 05-11-2002 à 15:01:35  profilanswer
 

tu devrais afficher $TmpDeb et $TmpFin pour comprendre ce qui se passe

n°239835
zion
Plop
Posté le 05-11-2002 à 15:04:07  profilanswer
 

regarde dans le manuel en ligne, dans les commentaires y a un code pour faire ce que tu veux, mais le format de microtime ne te permets pas de faire une soustraction comme ca si je me rapelle bien, désolé  ;)


---------------
Informaticien.be - Lancez des défis à vos amis
n°239836
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 15:07:55  profilanswer
 

zion a écrit a écrit :

regarde dans le manuel en ligne, dans les commentaires y a un code pour faire ce que tu veux, mais le format de microtime ne te permets pas de faire une soustraction comme ca si je me rapelle bien, désolé  ;)  




Ok mais l'erreur devrait se produire dans 100% des cas alors!!! comprends po...
 
charlene>> t'as raison , je vais afficher les valeurs de Debut et fin pour voir...

n°239838
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 15:14:13  profilanswer
 

BOoooooooon
 
voila j'ai choppé la valeur de debut et de fin quand le bug se produit, et logiquement il est normal que ca ai une valeur negative: regardez :  
 
Page générée en -961.7 milli-secondes  
Debut : 0.99831700 1036505550
Fin : 0.03660200 1036505551

 
donc selon lui parfois, il fini la page avant de l'avoir commencé  [:rofl]  
 
 
 
 
 :heink:  
 
 
La je capte po... vraiment po...
 
 


Message édité par Schtroumpheur le 05-11-2002 à 15:16:31
n°239851
barbarella
Posté le 05-11-2002 à 15:23:13  profilanswer
 

schtroumpheur a écrit a écrit :

 
Ok mais l'erreur devrait se produire dans 100% des cas alors!!! comprends po...
 
charlene>> t'as raison , je vais afficher les valeurs de Debut et fin pour voir...  




 
nan, nan,
 
certaines opérations ou fonctions peuvent renvoyer une valeur indéterminée quand elles ne sont pas utilisées exactement comme elles devraient l'être.
 
Le fait que ça soit indéterminé, fait que des fois les valeurs crachées seront dans l'intervalle de contrainte de fonctionnement de ton programme. Pas de plantage voir des affichages de résultats plus ou moins cohérent, mais pas forcément juste.
 
Un programme qui bogue n'est pas forcément un programme qui plante, c'est des programmes farceurs. Tu crois que tu l'as débogué et un jour ... paf le prog farceur frappe. Toujours très drole d'ailleurs :D

n°239853
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 15:25:21  profilanswer
 

barbarella a écrit a écrit :

 
 
nan, nan,
 
certaines opérations ou fonctions peuvent renvoyer une valeur indéterminée quand elles ne sont pas utilisées exactement comme elles devraient l'être.
 
Le fait que ça soit indéterminé, fait que des fois les valeurs crachées seront dans l'intervalle de contrainte de fonctionnement de ton programme. Pas de plantage voir des affichages de résultats plus ou moins cohérent, mais pas forcément juste.
 
Un programme qui bogue n'est pas forcément un programme qui plante, c'est des programmes farceurs. Tu crois que tu l'as débogué et un jour ... paf le prog farceur frappe. Toujours très drole d'ailleurs :D




 
Oué ca c'est sur,...
 
 
mais microtime() te renvois quoi exactement?  
Car je sais plus trop avec tout ca... :/

n°239854
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 15:26:25  profilanswer
 

sur php.net :  
 
My microtime function doesn't seem to know which way is up. I include a file in every script. The first line of code in the include file is
 
$begin_time = microtime();
 
A function within the include file is the LAST thing called during script execution. it says:
 
global $begin_time;
$total time = microtime() - $begin_time;
 
Now the outcome is (very strange) sometimes negative, sometimes positive. Always around 0.2 through -0.2.

n°239856
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 15:27:35  profilanswer
 

Simple function to return the absolute difference between two microtime strings.
 
  function microtime_diff($a,$b) {
    list($a_micro, $a_int)=explode(' ',$a);
     list($b_micro, $b_int)=explode(' ',$b);
     if ($a_int>$b_int) {
        return ($a_int-$b_int)+($a_micro-$b_micro);
     } elseif ($a_int==$b_int) {
        if ($a_micro>$b_micro) {
          return ($a_int-$b_int)+($a_micro-$b_micro);
        } elseif ($a_micro<$b_micro) {
           return ($b_int-$a_int)+($b_micro-$a_micro);
        } else {
          return 0;
        }
     } else { // $a_int<$b_int
        return ($b_int-$a_int)+($b_micro-$a_micro);
     }
  }

 
comprends pas trop pq il faut faire tout ca

n°239862
barbarella
Posté le 05-11-2002 à 15:30:13  profilanswer
 

ben,
 
en php je ne sais pas, mais en C tu peux utiliser  
 
ftime(&temps1);
....
ftime(&temps2);
vax = diftem(temps1,temps2); :D
 
désolé, il te faut un utilisateur PHP pour plus d'info

mood
Publicité
Posté le 05-11-2002 à 15:30:13  profilanswer
 

n°239876
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 15:36:40  profilanswer
 

barbarella a écrit a écrit :

ben,
 
en php je ne sais pas, mais en C tu peux utiliser  
 
ftime(&temps1);
....
ftime(&temps2);
vax = diftem(temps1,temps2); :D
 
désolé, il te faut un utilisateur PHP pour plus d'info
 




OK merci quand meme,  :D

n°239901
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 05-11-2002 à 15:56:09  profilanswer
 

T'as essayé avec mktime() à la place de microtime() ?


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°239902
zion
Plop
Posté le 05-11-2002 à 15:56:35  profilanswer
 

C'est écrit texto:
 
 Returns the string "msec sec"
 
donc ton calcul c'est n'importe quoi, tu dois séparer les valeurs et faire un joli calcul, mais la valeur à gauche c'est les msec.
 
 :hello:


---------------
Informaticien.be - Lancez des défis à vos amis
n°239908
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 05-11-2002 à 15:59:41  profilanswer
 

Ah uiiiiiiiiii, vala, c'est ça. Fallait juste bien lire la doc, en fait :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°239911
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 16:01:37  profilanswer
 

zion a écrit a écrit :

C'est écrit texto:
 
 Returns the string "msec sec"
 
donc ton calcul c'est n'importe quoi, tu dois séparer les valeurs et faire un joli calcul, mais la valeur à gauche c'est les msec.
 
 :hello:  




 
 
Ha ouéééé, mince alors, merci de me l'avoir faire remarqué :)
 
Bon ben j'ai pigé le bug alors !!! quand le nombre de seconde sont pas les meme c'est logique qu'il sorte une valeur negative alors, en effet c du portenawak mon machin !!!
 
Merci  :jap:

n°239913
zion
Plop
Posté le 05-11-2002 à 16:02:30  profilanswer
 

J'avais dit de lire la doc  :ange:  
 
Y a même un comment avec un script tout fait  :D


---------------
Informaticien.be - Lancez des défis à vos amis
n°239916
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 16:05:30  profilanswer
 

zion a écrit a écrit :

J'avais dit de lire la doc  :ange:  
 
Y a même un comment avec un script tout fait  :D  




 
:/

n°239925
art_dupond
je suis neuneu... oui oui !!
Posté le 05-11-2002 à 16:13:58  profilanswer
 

moi j'ai repiqué ca :
 
 

function getmicrotime()
{
 list($usec, $sec) = explode(" ",microtime());
 return ((float)$usec + (float)$sec);
}
 
 
$time_start = getmicrotime();
$time_end = getmicrotime();
$time = $time_end - $time_start;


---------------
oui oui
n°239928
Schtroumph​eur
bwwwwwaaaaarkkkkkkk!!!!!!
Posté le 05-11-2002 à 16:19:41  profilanswer
 

Bon ben voila j'ai fait unetite fonction toute simple  
 

Code :
  1. function SubtractMicrotime($mt1, $mt2)
  2. {
  3. $mt1=explode(" ",$mt1);
  4. $mt2=explode(" ",$mt2);
  5. $RealTime1=$mt1[1]+$mt1[0];
  6. $RealTime2=$mt2[1]+$mt2[0];
  7. return $RealTime2-$RealTime1;
  8. }


 
et ca marche tres bien merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Temps de generations d'une page, OK mais... bug !!

 

Sujets relatifs
page web dans un mailPourquoi ce code déforme ma page ?
Récupérer l'objet Page courant ds une classeempéché messages barre de tache lors de l'ouverture de la page ?!?!?
Peut-ton travailler avec plusieurs Winsock en meme temps ??impression page web (IDM_PRINT)
[php] Inclusion d'une PAGE http://www.monserveur/mapage.p hp[PHP]Rechercher tout les liens dans une page!
[ JS ] Actualiser la page en cours avec un bouton ( lien ) ou en PHP[HELP NEEDED] programme permettant la gestion d'un emploi du temps
Plus de sujets relatifs à : Temps de generations d'une page, OK mais... bug !!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR