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

 


 Mot :   Pseudo :  
 
 Page :   1  2  3  4  5
Auteur Sujet :

while + foreach pas compatible ?! (2 TT, vivent les topics web)

n°1367406
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 13:01:49  profilanswer
 

Reprise du message précédent :
ce détail que tu élude montre que ce que tu raconte est faux, désolé pour toi..
 
ce temps perdu à affecter compense simplement la rapidité du foreach
 
au final, pour faire le même nombre d'itération, les 2 solutions sont soit aussi rapide (peu de lignes) soit mysql_data_seek() est plus rapide (sur beaucoup de lignes)
 
t'as qu'à tester puisque t'es tellement un roxxor


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
mood
Publicité
Posté le 16-05-2006 à 13:01:49  profilanswer
 

n°1367409
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 13:04:52  profilanswer
 

Sh@rdar a écrit :

ce détail que tu élude montre que ce que tu raconte est faux, désolé pour toi..
 
ce temps perdu à affecter compense simplement la rapidité du foreach


 
:lol: Anthologique, celle là
 

Citation :

$result = mysql_query("select * from abonnementsiteinternaute", $cac);
$t[0] = microtime();
while ($obj = mysql_fetch_object($result));
$t[1] = microtime();  
mysql_data_seek($result, 0);
while ($obj = mysql_fetch_object($result));
$t[2] = microtime();  
mysql_data_seek($result, 0);
while ($obj = mysql_fetch_object($result))
 $tab2[] = $obj;  
$t[3] = microtime();
foreach($tab2 as $pk => $obj)
 $tab3[] = $obj;
$t[4] = microtime();
 
?>
 
delta1 = <?php echo ($t[1]-$t[0]) ?><br />  
delta2 = <?php echo ($t[2]-$t[1]) ?><br />  
delta3 = <?php echo ($t[3]-$t[2]) ?><br />  
delta4 = <?php echo ($t[4]-$t[3]) ?><br />


 
delta1 = 0.017028
delta2 = 0.017603
delta3 = 0.020106 : avec l'affectation
delta4 = 0.002808 : en utilisant le tableau au lieu de parcourir les enreg avec mysql_fetch
 
Voila, tu peux aller te cacher :D
 
Au final : TOUTES MES EXCUSES : c'est "seulement" SIX FOIS PLUS RAPIDE :lol:
 
Serieux, je supporte pas ces mecs qui te contredisent alors qu'il n'y connaissent rien de rien.

Message cité 1 fois
Message édité par smaragdus le 16-05-2006 à 13:12:05
n°1367433
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 13:24:34  profilanswer
 

tu continue à me montrer qu'un foreach est plus rapide pour parcourir un tableau, et ça on le sait depuis un moment..
 
pour parcourir 2 fois le tuple, t'es bien d'accord qu'il faut soit
 
1 - fetcher  
2 - remettre le pointeur à zéro
3 - refetcher
 
ou
 
1 - fetcher
2 - affecter un tableau (pendant le fetch, sinon tu va encore me sortir ça de n'importe où)
3 - parcourir le tableau
 
ton truc mesure pas la différence entre les 2 façons de faire..
 
moi si j'ai ça  
 

Citation :


$start = microtime();
while ($val = mysql_fetch_row($Query)) {
 $Results[] = $val; // là ça fait mal au cul puisque le fetching est forcément plus long que si on ne fait rien
}
foreach ($Results AS $val) { // ici on va vite, mais on tente juste de rattraper le temps perdu au dessus
 
}
$end = microtime();


 
qui est plus lent que ça :
 

Citation :


$start = microtime();
while ($val = mysql_fetch_row($Query)) {
 
}
mysql_data_seek($Query,0);
while ($val = mysql_fetch_row($Query)) { // ici  on perd un peu de temps, mais c'est celui qu'on a gagné à ne pas affecter un tableau en plus, gain d'autant plus important qu'on a de lignes dans le tuple
 
}
$end = microtime();


 
et pas 6 fois plus rapide comme tu le prétends..
 
 

Citation :


 => mysql_data_seek() => tableau supplémentaire
   10 lignes => 0.000123977661133 => 0.000184059143066
  100 lignes => 0.000683069229126 => 0.000883102416992
1000 lignes => 0.00576090812683 => 0.00923609733582

Message cité 1 fois
Message édité par Sh@rdar le 16-05-2006 à 13:42:07

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367520
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 14:18:50  profilanswer
 

Continue de t'enfoncer, ça me fait marrer  :D
 
avec un while au lieu d'un foreach :
 

Citation :

while($obj = array_pop($tab2))
 $tab4[] = $obj;
$t[5] = microtime();


 
delta1 = 0.017017
delta2 = 0.017053
delta3 = 0.020535
delta4 = 0.002854
delta5 = 0.00269
 
C'est encore plus rapide [:ddr555]

Message cité 1 fois
Message édité par smaragdus le 16-05-2006 à 14:27:53
n°1367552
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 14:37:03  profilanswer
 

Sh@rdar a écrit :

tu continue à me montrer qu'un foreach est plus rapide pour parcourir un tableau, et ça on le sait depuis un moment..
 
pour parcourir 2 fois le tuple, t'es bien d'accord qu'il faut soit
 
1 - fetcher  
2 - remettre le pointeur à zéro
3 - refetcher
 
ou
 
1 - fetcher
2 - affecter un tableau (pendant le fetch, sinon tu va encore me sortir ça de n'importe où)
3 - parcourir le tableau
 
ton truc mesure pas la différence entre les 2 façons de faire..


 
oui / non pour parcourir X fois un tuple ?


Message édité par Sh@rdar le 16-05-2006 à 14:37:39

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367589
skeye
Posté le 16-05-2006 à 15:00:42  profilanswer
 

'tain le dialogue de sourds...[:moule_bite]
 
smaragdus> c'est (delta1+delta2) qu'il faut comparer à (delta3+delta4), dans ton truc, non? [:dawao]
 
sh@rdar> ça doit dépendre d'un paquet de paramètres, tout ça, de toute manière...:o
 


---------------
Can't buy what I want because it's free -
n°1367595
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:07:27  profilanswer
 

à chaque fois j'y ai droit :o
 
tout ce que je veux, c'est qu'on reconnaisse que ce putain de bench est foireux :o
 
et effectivement si tu dois fetcher 75 fois les lignes, vaut mieux charger un tableau, mais pour les quelques cas pratiques que j'ai pu voir, mysql_data_seek() N'EST PAS LOURD ET LENT comme j'ai pu le lire :o


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367604
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 15:14:12  profilanswer
 

Sh@rdar a écrit :

à chaque fois j'y ai droit :o
 
tout ce que je veux, c'est qu'on reconnaisse que ce putain de bench est foireux :o


 
Venant d'un mec qui fait des bench avec des echo au milieu, lol quoi [:rofl]
 

skeye a écrit :


smaragdus> c'est (delta1+delta2) qu'il faut comparer à (delta3+delta4), dans ton truc, non? [:dawao]


non [:spamafote]

Message cité 2 fois
Message édité par smaragdus le 16-05-2006 à 15:14:44
n°1367610
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:15:55  profilanswer
 

smaragdus a écrit :

Venant d'un mec qui fait des bench avec des echo au milieu, lol quoi [:rofl]
 
 
non [:spamafote]


 
 
réponds déjà à ma question précédente, on avancera un peu [:mlc]
 
parce que ton truc là t'as raté des additions on dirait..
 
delta1 = 0.017028 <= compte le temps que prend un fetching mysql
delta2 = 0.017603 <= compte le temps que prend un fetching après remise à zéro du pointeur
delta3 = 0.020106 <= compte le temps que prend l'affectation d'un tableau pendant un fetching
delta4 = 0.002808 <= compte le temps que prend le parcourt d'un tableau avec foreach

Message cité 2 fois
Message édité par Sh@rdar le 16-05-2006 à 15:18:09

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367612
masklinn
í dag viðrar vel til loftárása
Posté le 16-05-2006 à 15:17:30  profilanswer
 

smaragdus a écrit :

Continue de t'enfoncer, ça me fait marrer  :D
 
avec un while au lieu d'un foreach :
 

Citation :

while($obj = array_pop($tab2))
 $tab4[] = $obj;
$t[5] = microtime();


 
delta1 = 0.017017
delta2 = 0.017053
delta3 = 0.020535
delta4 = 0.002854
delta5 = 0.00269
 
C'est encore plus rapide [:ddr555]


Ouais enfin en attendant tu testes pas la même chose que lui donc bon [:petrus75]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 16-05-2006 à 15:17:30  profilanswer
 

n°1367617
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:19:07  profilanswer
 

masklinn a écrit :

Ouais enfin en attendant tu testes pas la même chose que lui donc bon [:petrus75]


 
 
de toute manière je suis d'accord avec ce qu'il compte lui :o un parcourt de tableau est bien plus rapide qu'un fetch ça fait un moment que je le répète :o


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367619
masklinn
í dag viðrar vel til loftárása
Posté le 16-05-2006 à 15:20:23  profilanswer
 

Sh@rdar a écrit :

de toute manière je suis d'accord avec ce qu'il compte lui :o un parcourt de tableau est bien plus rapide qu'un fetch ça fait un moment que je le répète :o


Je sais bien, je les ai lus tes posts :o


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1367623
skeye
Posté le 16-05-2006 à 15:21:40  profilanswer
 


 
Bah si, je suis d'accord avec lui, là, c 'est le temps premier parcours + second parcours qui est intéressant, pas le temps du premier isolé ou du second isolé...[:jagstang]
 

Sh@rdar a écrit :

parce que ton truc là t'as raté des additions on dirait..
 
delta1 = 0.017028 <= compte le temps que prend un fetching mysql
delta2 = 0.017603 <= compte le temps que prend un fetching après remise à zéro du pointeur
delta3 = 0.020106 <= compte le temps que prend l'affectation d'un tableau pendant un fetching
delta4 = 0.002808 <= compte le temps que prend le parcourt d'un tableau avec foreach


 


Message édité par skeye le 16-05-2006 à 15:22:22

---------------
Can't buy what I want because it's free -
n°1367625
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 15:22:06  profilanswer
 

Sh@rdar a écrit :

réponds déjà à ma question précédente, on avancera un peu [:mlc]
 
parce que ton truc là t'as raté des additions on dirait..
 
delta1 = 0.017028 <= compte le temps que prend un fetching mysql
delta2 = 0.017603 <= compte le temps que prend un fetching après remise à zéro du pointeur
delta3 = 0.020106 <= compte le temps que prend l'affectation d'un tableau pendant un fetching
delta4 = 0.002808 <= compte le temps que prend le parcourt d'un tableau avec foreach


 
tu persistes :lol:
 
et oui et on en déduit que si tu veux parcourir 2 fois tes lignes :  
* avec ta méthode, ça va prendre 17 ms + 17 ms
* avec ma méthode, ça va prendre 20 ms + 3 ms
 
DONC ma méthode est  plus rapide et moins lourde (car la tienne laisse ouverte la connexion en plus)
 
CQFD.

Message cité 2 fois
Message édité par smaragdus le 16-05-2006 à 15:23:08
n°1367630
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:24:49  profilanswer
 

smaragdus a écrit :

:lol:
 
et oui et on en déduit que si tu veux parcourir 2 fois tes lignes :  
* avec ta méthode, ça va prendre 17 ms + 17 ms
* avec ma méthode, ça va prendre 20 ms + 3 ms
 
DONC ma méthode est  plus rapide et moins lourde (car la tienne laisse ouverte la connexion en plus)
 
CQFD.


 
 
si tu faisais un vrai test (les 2 méthodes séparées par exemple) et si tu veux on ajoute une coupure de connexion, comme ça tu verras qu'en plus tu peux lire le buffer en étant déconnecté [:kiki]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367632
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 15:26:05  profilanswer
 

Sh@rdar a écrit :

si tu faisais un vrai test (les 2 méthodes séparées par exemple) et si tu veux on ajoute une coupure de connexion, comme ça tu verras qu'en plus tu peux lire le buffer en étant déconnecté [:kiki]


 
j'ai fait un vrai test (pas comme le tiens qui est foireux et mal fait)

n°1367633
masklinn
í dag viðrar vel til loftárása
Posté le 16-05-2006 à 15:26:16  profilanswer
 

smaragdus a écrit :

tu persistes :lol:
 
et oui et on en déduit que si tu veux parcourir 2 fois tes lignes :  
* avec ta méthode, ça va prendre 17 ms + 17 ms
* avec ma méthode, ça va prendre 20 ms + 3 ms
 
DONC ma méthode est  plus rapide et moins lourde (car la tienne laisse ouverte la connexion en plus)
 
CQFD.


On progresse, je sais pas si t'as remarqué mais t'es déjà passé de "ta méthode est 8 fois plus lente que la mienne" à "ta méthode est 50% plus lente que la mienne" :whistle:


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1367637
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:28:01  profilanswer
 

masklinn a écrit :

On progresse, je sais pas si t'as remarqué mais t'es déjà passé de "ta méthode est 8 fois plus lente que la mienne" à "ta méthode est 50% plus lente que la mienne" :whistle:


 
 
on va finir par y arriver, en plus de ça on a même transformé un CQFD en DTC [:galatee]


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367639
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:28:27  profilanswer
 

smaragdus a écrit :

j'ai fait un vrai test (pas comme le tiens qui est foireux et mal fait)


 
donc pour la connexion ouverte tu t'écrase gentillement c'est bien ça ?


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367646
Djebel1
Nul professionnel
Posté le 16-05-2006 à 15:29:57  profilanswer
 

il est foireux ton bench Smaragdus !

n°1367669
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 15:38:27  profilanswer
 

Djebel1 a écrit :

il est foireux ton bench Smaragdus !


Apprends à lire

masklinn a écrit :

On progresse, je sais pas si t'as remarqué mais t'es déjà passé de "ta méthode est 8 fois plus lente que la mienne" à "ta méthode est 50% plus lente que la mienne" :whistle:


 
Apprends à lire, j'ai pas parlé de méthode mais juste pour la boucle en elle même, essaie de te rattraper aux braches comme tu peux :lol:
 
ta méthode foireuse et lourde :
 

$result = mysql_query("select * from abonnementsiteinternaute", $cac);
 
$t[0] = microtime();
while ($obj = mysql_fetch_object($result));
$t[1] = microtime();  
mysql_data_seek($result, 0);
while ($obj = mysql_fetch_object($result));
$t[2] = microtime();  
 
?>
 
delta1 = <?php echo ($t[1]-$t[0]) ?><br />  
delta2 = <?php echo ($t[2]-$t[1]) ?><br />  
delta = <?php echo ($t[2]-$t[0]) ?><br />  


delta1 = 0.017247
delta2 = 0.017484
delta = 0.034731
 
Ma méthode :  

mysql_select_db($database_cac, $cac);
$result = mysql_query("select * from abonnementsiteinternaute", $cac);
 
$t[0] = microtime();
while ($obj = mysql_fetch_object($result))
 $tab2[] = $obj;  
$t[1] = microtime();
while($obj = array_pop($tab2));
$t[2] = microtime();
 
?>
 
delta1 = <?php echo ($t[1]-$t[0]) ?><br />  
delta2 = <?php echo ($t[2]-$t[1]) ?><br />  
delta = <?php echo ($t[2]-$t[0]) ?><br />  
 
 


 
delta1 = 0.02134
delta2 = 0.00559
delta = 0.02693
 
CQFD et DTC [:rofl] [:rofl] [:rofl] [:rofl]
 
Je ne pensais pas qu'on pouvait totaliser un tel niveau d'incompétence :/


Message édité par smaragdus le 16-05-2006 à 15:41:05
n°1367678
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:43:15  profilanswer
 

ahh !! on arrive enfin à des résultats sérieux, t'auras pris le temps
 
array_pop fais effectivement gagner un peu de temps, mais ça ne t'aurorisera qu'une seule itération ;)
 
maintenant compare sur 10 100 1000 10000  et1000000 lignes, et tu pourra juste arrêter de dire que c'est lourd et lent


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367681
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 15:45:03  profilanswer
 

Sh@rdar a écrit :

ahh !! on arrive enfin à des résultats sérieux, t'auras pris le temps
 
array_pop fais effectivement gagner un peu de temps, mais ça ne t'aurorisera qu'une seule itération ;)
 
maintenant compare sur 10 100 1000 10000  et1000000 lignes, et tu pourra juste arrêter de dire que c'est lourd et lent


 
Alors tu m'expliques comment tu arrives à tes résultats foireux où c'est plus lent avec le tableau ? :lol:
Tu n'esquives pas très bien  :sarcastic:  
 
Et j'ai utilisé array_pop mais j'aurais pu utiliser next(), t'es vraiment la mauvaise foi incarnée :lol:
 
C'est donc lent et lourd, cqfd
 
edit : et je prépare ton prochain argument de mauvaise foi: j'ai précisé dès le début qu'il fallait stocker en mémoire "si c'était possible"  [:zytrahusathome]
 
Quand j'avance qqc, je sais de quoi je parle MOI  [:catharsis]

Message cité 1 fois
Message édité par smaragdus le 16-05-2006 à 15:50:21
n°1367701
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:52:43  profilanswer
 

smaragdus a écrit :

Alors tu m'expliques comment tu arrives à tes résultats foireux où c'est plus lent avec le tableau ? :lol:
 
Et j'ai utilisé array_pop mais j'aurais pu utiliser next(), t'es vraiment la mauvaise foi incarnée :lol:
 
C'est donc lent et lourd, cqfd


 
attends coco, t'as mis 2 pages pour mesurer correctement avec des :lol: partout et c'est moi qui suis de mauvaise fois :??:
 
on sait même pas combien t'as de ligne dans ta table, tu dépile ton tableau donc tu pourra pas le reparcourir au besoin mais t'en reste à pinailler sur quelques ms alors qu'au début c'était ultra lent hein [:kiki]
 
 
et les résultats sont issus du code que j'ai mis plus haut.. testé sur une base de plus de 2 millions de lignes

Message cité 1 fois
Message édité par Sh@rdar le 16-05-2006 à 15:55:56

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367712
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 15:56:36  profilanswer
 

Sh@rdar a écrit :

on sait même pas combien t'as de ligne dans ta table, tu dépile ton tableau donc tu pourra pas le reparcourir au besoin mais t'en reste à pinailler sur quelques ms alors qu'au début c'était ultra lent hein [:kiki]


 
C'est pas de ma faute si tu fais exprès de comprendre de travers.
Mais ça n'enlève rien au fait que c'est lent et lourd, hein, monsieur-qui-fait-des-bench-avec-des-echo ? :lol:

n°1367718
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 15:58:56  profilanswer
 

smaragdus a écrit :

C'est pas de ma faute si tu fais exprès de comprendre de travers.
Mais ça n'enlève rien au fait que c'est lent et lourd, hein, monsieur-qui-fait-des-bench-avec-des-echo ? :lol:


 
 
clair, echo c'est quelque chose qui n'est jamais utilisé dans des conditions réelles [:pingouino]  
 
désolé coco mais ça me semble autrement plus réaliste que ton truc synthétique..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367727
skeye
Posté le 16-05-2006 à 16:01:27  profilanswer
 

Sh@rdar a écrit :

clair, echo c'est quelque chose qui n'est jamais utilisé dans des conditions réelles [:pingouino]  
 
désolé coco mais ça me semble autrement plus réaliste que ton truc synthétique..


(en attendant sur le coup c'est lui qui a raison...comparer ce genre de trucs en collant des echo au milieu c'est ridicule.[:petrus75])


---------------
Can't buy what I want because it's free -
n°1367728
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 16-05-2006 à 16:01:52  profilanswer
 

smaragdus a écrit :

C'est pas de ma faute si tu fais exprès de comprendre de travers.
Mais ça n'enlève rien au fait que c'est lent et lourd, hein, monsieur-qui-fait-des-bench-avec-des-echo ? :lol:


'tain mais tu peux pas arrêter tes vannes à 2 balles ? [:mlc] Shardar il reste poli sur 2 pages et toi tu passes ton temps à balancer des "t'es trop nul, lol [:rofl]", t'as toujours pas compris que c'est toi qui passes pour un con depuis tout ce temps ?


---------------
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°1367731
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 16:03:09  profilanswer
 

Sh@rdar a écrit :

désolé coco mais ça me semble autrement plus réaliste que ton truc synthétique..


 
T'as raison l'objectivité n'est pas de mise quand on veut se rattraper aux branches :lol:
 
En tout cas, tu auras bien fait marrer mes collègues de boulot à vouloir me certifier que manipuler des données en mémoire est toujours plus lent que les manipuler dans la database
 
Elu boulet du jour :D

n°1367735
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 16:03:55  profilanswer
 

Taiche a écrit :

'tain mais tu peux pas arrêter tes vannes à 2 balles ? [:mlc] Shardar il reste poli sur 2 pages et toi tu passes ton temps à balancer des "t'es trop nul, lol [:rofl]", t'as toujours pas compris que c'est toi qui passes pour un con depuis tout ce temps ?


 
M'en branle, passer pour un con auprès de tocard est un délice de fin gourmet [:aloy]

n°1367740
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 16:04:55  profilanswer
 

skeye a écrit :

(en attendant sur le coup c'est lui qui a raison...comparer ce genre de trucs en collant des echo au milieu c'est ridicule.[:petrus75])


 
 
et en quoi ça change la mesure si on fait exactement la même chose des deux cotés ?
 
faire un echo va pas prendre plus de temps d'un script à l'autre, manipuler des données dans le vide c'est pas très logique..


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367743
stiffler
Lâche mon profil putain ! :o
Posté le 16-05-2006 à 16:06:32  profilanswer
 

masi faites du flash putain :fou:

n°1367744
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 16:07:20  profilanswer
 

Sh@rdar a écrit :

et en quoi ça change la mesure si on fait exactement la même chose des deux cotés ?


 
t'as pas compris ma métaphore du poussin ?

n°1367745
skeye
Posté le 16-05-2006 à 16:07:40  profilanswer
 

Sh@rdar a écrit :

et en quoi ça change la mesure si on fait exactement la même chose des deux cotés ?
 
faire un echo va pas prendre plus de temps d'un script à l'autre, manipuler des données dans le vide c'est pas très logique..


 
ça ne "change" pas la mesure, mais ça change son ordre de grandeur, de rajouter des conneries au milieu de la partie intéressante...ce qui a tendance à minimiser les différences éventuelles...:o
 
Puis de toute manière, on traite les donnée d'abord, et on les affiche après, on ne mélange pas.[:dawao]


---------------
Can't buy what I want because it's free -
n°1367748
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 16:09:39  profilanswer
 

smaragdus a écrit :

T'as raison l'objectivité n'est pas de mise quand on veut se rattraper aux branches :lol:
 
En tout cas, tu auras bien fait marrer mes collègues de boulot à vouloir me certifier que manipuler des données en mémoire est toujours plus lent que les manipuler dans la database
 
Elu boulet du jour :D


 
contrairement à toi je certifie rien, j'ai juste dit que mysql_data_seek et pas lourd et lent (me semble que c'est bien rentré là hein ? tu gratte quelques ms sur des boucles à vide et ton refus de faire un vrai test sur plusieurs lignes etc montre bien ta bonne volonté)
 
et pour le coup de la mémoire, je veux bien que tu m'explique comment fonctionne le pointeur, surtout une fois qu'on est déconnecté ;)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367750
Sh@rdar
Ex-PhPéteur
Posté le 16-05-2006 à 16:10:47  profilanswer
 

skeye a écrit :

ça ne "change" pas la mesure, mais ça change son ordre de grandeur, de rajouter des conneries au milieu de la partie intéressante...ce qui a tendance à minimiser les différences éventuelles...:o
 
Puis de toute manière, on traite les donnée d'abord, et on les affiche après, on ne mélange pas.[:dawao]


 
 
ok, mais si on parle justement de pas affecter des résultats en mémoire pour rien, faudrait peut être les traiter (afficher) sinon y'a pas de raison d'être de cette fonction...
 
si c'est pour afficher plus loin, t'affecte tout d'entrée de jeu, reparcourir le tuple devient inutile


Message édité par Sh@rdar le 16-05-2006 à 16:12:26

---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
n°1367753
FlorentG
Posté le 16-05-2006 à 16:12:23  profilanswer
 

J'ai fait ce code :

$link = mysql_connect('localhost', 'root', '');
mysql_select_db('oscom', $link);
 
 
$result = mysql_query('SELECT * FROM `products`');
 
 
function f1($result) {
 
    $str = '';
 
    while($row = mysql_fetch_assoc($result)) {
        $str .= print_r($row, true);
    }
 
    mysql_data_seek($result, 0);
 
    while($row = mysql_fetch_assoc($result)) {
        $str .= print_r($row, true);
    }
}
 
 
function f2($result) {
 
    $str = '';
 
    $pouet = array();
    while($row = mysql_fetch_assoc($result)) {
        $str .= print_r($row, true);
        $pouet [] = $row;
    }
 
    foreach($pouet as &$row) {
        $str .= print_r($row, true);
    }
}


 
Test sur une table d'osCommerce contenant 2708 enregistrements.
 
Fonctions testées indépendamments (une fois f1, puis f2), avec xDebug (et donc pas avec vos microtime pourris :D). Résultats :
f1 : 2900 ms
f2 : 3300 ms

n°1367754
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 16:12:35  profilanswer
 

Sh@rdar a écrit :

contrairement à toi je certifie rien, j'ai juste dit que mysql_data_seek et pas lourd et lent (me semble que c'est bien rentré là hein ? tu gratte quelques ms sur des boucles à vide et ton refus de faire un vrai test sur plusieurs lignes etc montre bien ta bonne volonté)


 
oui qq ms qui font que la 2ième boucle est 7 fois plus rapide [:ddr555]
Quand tu developperas des sites pros, tu comprendras un jour que la moindre ms est importantes

n°1367755
skeye
Posté le 16-05-2006 à 16:13:17  profilanswer
 

Bon sinon moi je veux bien voir les résultats de smaragdus
1) En fonction de la taille de la table.
2) En séparant les 2 méthodes dans 2 scripts distincts.
 
[:doc petrus]


---------------
Can't buy what I want because it's free -
n°1367757
smaragdus
whores, drugs & J.S. Bach
Posté le 16-05-2006 à 16:13:49  profilanswer
 

skeye a écrit :

ça ne "change" pas la mesure, mais ça change son ordre de grandeur, de rajouter des conneries au milieu de la partie intéressante...ce qui a tendance à minimiser les différences éventuelles...:o


 
Tout à fait :jap:
C'est bien pour ça que ses bench sont foireux (hein, djebel qui prend le train en route :D )
 

Citation :

Puis de toute manière, on traite les donnée d'abord, et on les affiche après, on ne mélange pas.[:dawao]


 
en plus :D

n°1367758
FlorentG
Posté le 16-05-2006 à 16:14:01  profilanswer
 

Maintenant, en conditions réelles, on utilisera plutôt f2 : La couche DB récupère le résultat et retourne un tableau, sinon on se retrouve avec des instructions mysql dans la présentation [:johneh]

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5

Aller à :
 

Sujets relatifs
while, do.....while?! :-(break pour un foreach ?
problème avec foreachForeach ArrayList
boucle while: table de multiplicationArray sur deux colonnes et foreach..
feuille css pas compatible IEJe cherche une fonction equivalente à foreach() ?
[PHP] Boucle do while() a condition multiples (résolu)(Image) Possible de rendre ca compatible IE et FF?
Plus de sujets relatifs à : while + foreach pas compatible ?! (2 TT, vivent les topics web)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)