CLASS BENCH - COMPARATEUR DE CODE PHP AVEC DIFFÉRENCE ENTRE CHAQUE CODE ET CODE

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 16 févr. 2005 à 17:45
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 23 févr. 2005 à 06:23
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29560-class-bench-comparateur-de-code-php-avec-difference-entre-chaque-code-et-code-plus-rapide

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
23 févr. 2005 à 06:23
Bah de toute façon perso pour mes tests j'ai un truc dans ton genre, pas de classe je trouve ça trop lourd.

a +
samueldr Messages postés 121 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 3 juillet 2005
23 févr. 2005 à 03:31
au lieu d'utiliser la classe pr les strtr et str_replace, utilisez la base de mon code ;)

plus simple lorsque le code est complexe (menfin, je crois)
http://www.phpcs.com/code.aspx?id=29497

Ha non, pas de la pub !!!! ;)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 févr. 2005 à 19:00
tu m'étonnes....

Bon si j'ai le temps je rajouterai ça à mon article, mais bon flemme aussi ^^
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
22 févr. 2005 à 18:52
flemme ^^
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 févr. 2005 à 18:48
lol, bah fais-le à la main alors ^^
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
22 févr. 2005 à 18:36
J'ai essayé de faire le test avec strtr et les plusieurs str_replace et j'ai pas réussi à l'écrire correctement dans la fonction xD
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
22 févr. 2005 à 16:45
Je pense qu'il y a de tte façon une imprécision liée à la mesure du temps bien supérieure aux temps mesurés, mais soit.

Sinon, dérouler une boucle est tjs plus rapide qu'exécuter une boucle; y a qu'à voir en C/C++ à quel point ça joue dans les optimisations!
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
22 févr. 2005 à 02:11
Pour strtr elle est plus lente effectivement, mais elle est plus lente comparée à un str_replace avec des tableaux passés en paramètres, pour ce qui est de plusieurs str_replaces faudrait faire le test ;-)
zoukozouko Messages postés 148 Date d'inscription dimanche 25 janvier 2004 Statut Membre Dernière intervention 21 janvier 2009
22 févr. 2005 à 01:21
anthomicro:
j'allais justement intervenir sur la correction:
" $this->code = str_replace('<?php', '', $code);
$this->code = str_replace('<?', '', $code);
$this->code = str_replace('?>', '', $code);

par la fonction strtr :
$tableau=array('<?php'=>'','<?'=>'','?>'=>'');
$this->code=strtr($code,$tableau);
"
strtr est une fonction qui permet surtout de rendre le code plus claire et moins touffu, mais au final, au niveau du temps d'exécution, la décomposition de la fonction est forcément plus rapide:

for ($i=0; $i<10; $i++) {}
est aussi rapide que
$i++;
$i++;
$i++;
$i++;
$i++;
$i++;
$i++;
$i++;
$i++;
$i++;
mais c'est plus joli.
Les fonctions distribuées pas la lib php nous permet d'éviter de les réécrire, on peut considérer qu'elle sont toutes optimisées.
mais il est plus rapide de mettre le corps de la fonction (si tu le connais) plutot que l'appel a la focntion:

function f(......)
{ ......corps de la fonction....}

....code....
f(........);
....code......

est plus lent que

.....code........
........corps de la fonction........
.........code.........

puisqu'il oblige l'interpreteur php à faire un appel a la fonction.
dans les langages comme C ou JAVA par contre, c'est la meme chose, puisque le programme est compilé, et en assembleur ca dont la meme chose.
Sinon, meme si c'est plus lent, j'utiliserai putot ta methode plus jolie et compacte, sachant que ca ne me derange pas (personnellement) que les utilisateurs de mes sites passent 0.000001 seconde de plus a charger ma page ....(les pauvres) lol
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
21 févr. 2005 à 10:15
Ouais il faut parser de facon a ce que ca marche :s

Avec un textarea et un addslashes ca devrait marcher non?
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
21 févr. 2005 à 10:12
Dis donc, ca demande de l'investissement pour utiliser ton bench avec certaines fonctions ;-)
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
20 févr. 2005 à 14:48
bon tant pis, je me débrouillerais ^^
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 févr. 2005 à 14:45
nah, je vais plus sur msn, désolé
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
20 févr. 2005 à 14:30
T'as pas msn plutot ? ^^
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 févr. 2005 à 14:15
kirua at coder-studio point com
à ton service ;)
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
20 févr. 2005 à 13:58
Ouf, faudra que tu m'explique ta source kirua j'comprends pas trop ^^
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 févr. 2005 à 13:53
lol
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
20 févr. 2005 à 13:40
Merci je vais y faire un tour :)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
20 févr. 2005 à 12:47
j'ai posté une classe qui fait des graphiques si tu veux:

http://www.phpcs.com/code.aspx?id=13345
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
20 févr. 2005 à 12:43
Tiens faudrait que j'intègre un truc qui fait des graphiques avec possibilité de sauvegarde du graph...:D
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
20 févr. 2005 à 10:59
Je reçois ça par mail (merci pour l'anonymat, ça m'aide vachement à avancer) :

"Dans ce bout, je ne suis pas sûr qu'avec la virgule c'est une concaténation...

d'après ce que j'avais vu sur PHPCS, c'est seulement que les paramètres de fonctions qui sont séparés par des virgules, donc c'est comme si c'était divers echo de suite."

Je suis d'accord en partie sur ce point, seulement tu mets bien plusieurs paramètres à la suite mais collés (je me comprends), ce n'est pas comme les arguments d'une fonction au sens propre (après peut-être qu'en interne si).

Bref je garde ce terme ;-)

a ++
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
20 févr. 2005 à 09:48
Pas mal l'article ^^
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 févr. 2005 à 22:18
merci ;-)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 févr. 2005 à 22:12
Viens de le lire, c'est un bon article! Il est dors et déjà dans mes bookmarks, et je vous encourage à aller le lire (c'est vite fait).
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 févr. 2005 à 20:31
Bon je viens de concevoir un article sur l'optimisation de PHP et quelques tests :

http://www.vulgarisation-informatique.com/optimiser-php.php

a++
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
19 févr. 2005 à 13:58
Salut,

une petite idée de test : strtr VS str_replace (en passant des tableaux aux deux fonctions)

je viens de voir sur un site que str_replace est plus rapide, faudrait le confirmer si possible.

Petit test :

a ++
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
17 févr. 2005 à 22:28
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
17 févr. 2005 à 09:01
http://www.phpdebutant.org/article42.php samueldr ;)

Malalam > Fais nous part de tes résultats ;)
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
17 févr. 2005 à 08:47
Hello,

efficace et sympa :-)
Je sens que ca va m'amuser un moment!
Je vais lancer des paris sur la rapidite de telle ou telle fonction ;-)
samueldr Messages postés 121 Date d'inscription samedi 23 août 2003 Statut Membre Dernière intervention 3 juillet 2005
17 févr. 2005 à 03:17
es-t-il possible d'avoi un lien pour un cours simple pour les classes, je pige toujours pas, sinon, j'aurais peut-être fait mon code en classes ...

et ouais, il m'a l'air bien ton code fuckya
j'ai pas tout bien compris, mais il a l'air bien construit, plus que le mien.

je ne noterai pas, parce que je ne l'ai pas essayé.

Merci à celui qui m'envoiera un lien sur les classes (français ou anglais, peu importe)
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
16 févr. 2005 à 18:47
chacun son tour pour la modification de code xD je fais les modifs dans une quinzaine de minutes
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 18:44
je lis "is_file est environ 1,20 à 1,80 fois plus rapide que file_exists quand le fichier existe."

pas mal comme test, je sens que je vais remplacer certaines fonctions de mon site ;-)
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
16 févr. 2005 à 18:33
grmbl, t'as d'la chance j'avais un autre truc a modifier ^^
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 18:26
ça aussi :

if(!is_array($code)) {
echo 'La variable $code n\'est pas un tableau ! ';
die();
}

if(!is_array($nom_du_bench)) {
echo 'La variable $nom_du_bench n\'est pas un tableau ! ';
die();
}

tu peux le remplacer par ça :

if(!is_array($code)) {
die('La variable $code n\'est pas un tableau ! ');
}

if(!is_array($nom_du_bench)) {
die('La variable $nom_du_bench n\'est pas un tableau ! ');
}
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
16 févr. 2005 à 18:21
Voila maintenant faut un array pour $code et $nom_du_bench
fuckya Messages postés 125 Date d'inscription mercredi 31 mars 2004 Statut Membre Dernière intervention 8 juin 2006
16 févr. 2005 à 17:47
Merci antho je cherchais justement un truc pour mon str replace xD

Bon je poste la modif pour le truc avec plusieurs noms bientot :)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 17:46
Je te mets 8/10 ;-)
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
16 févr. 2005 à 17:45
Salut,

bon ça va, j'avoue que j'ai vu pire ;-)

bon j'ai quand même trouvé quelques trucs :

$array array('0'> "$code");

que tu peux remplacer par :

$array = array(0=>$code);

Ensuite ça :

$this->code = str_replace('<?php', '', $code);
$this->code = str_replace('<?', '', $code);
$this->code = str_replace('?>', '', $code);

par la fonction strtr :

$tableau=array('<?php'=>'','<?'=>'','?>'=>'');
$this->code=strtr($code,$tableau);

Ensuite pour le XHTML est à remplacer par (tu peux appliquer un style font-style:italic dans la CSS pour les balises )

a ++
Rejoignez-nous