stealth35, ça veut dire quoi ta phrase concernant "l'opcode", que ce n'est pas complètement fiable ce genre de tests?
Merci d'avance
pour exécuter un fichier PHP y'a plusieurs étape, dont une de compilation, de code est converti en opcode (voir l'extension VLD) après un phase de tokenization, l'opcode ressemble a de l'assembleur, c'est ce code qui est exécuté
donc : tokenization -> compilation -> exécution
tout ce qui est compté en terme de temps (avec microtome et compagnie) débute uniquement a partir de l'exécution, tout ce qui avant n'est pas pris en compte,
Un extension comme APC permet de ne faire qu'une seule fois les deux première étape, puisque pour un mémé script l'opcode reste le même, ça fait du travaille en moins donc l'appli est plus rapide
et le fameux débat entre les double quote et single avec bench a l'appuie est ridicule puisque cette déférence est subite au moment de la tokenization donc incalculable au moment de l'exécution
Exemple :
echo 'hello'; VS
echo "hello";
echo 'hello';
number of ops: 3
compiled vars: none
line # * op fetch ext return operands
---------------------------------------------------------------------------------
2 0 > EXT_STMT
1 ECHO 'hello'
2 > RETURN 1
branch: # 0; line: 2- 2; sop: 0; eop: 2
echo "hello";
number of ops: 3
compiled vars: none
line # * op fetch ext return operands
---------------------------------------------------------------------------------
2 0 > EXT_STMT
1 ECHO 'hello'
2 > RETURN 1
branch: # 0; line: 2- 2; sop: 0; eop: 2
c'est pareil
par contre, faire ça c'est pas top
$text = 'hello';
echo "$text";
number of ops: 6
compiled vars: !0 = $text
line # * op fetch ext return operands
---------------------------------------------------------------------------------
2 0 > EXT_STMT
1 ASSIGN !0, 'hello'
3 2 EXT_STMT
3 ADD_VAR ~1 !0
4 ECHO ~1
5 > RETURN 1
branch: # 0; line: 2- 3; sop: 0; eop: 5
$text = 'hello';
echo $text;
number of ops: 5
compiled vars: !0 = $text
line # * op fetch ext return operands
---------------------------------------------------------------------------------
2 0 > EXT_STMT
1 ASSIGN !0, 'hello'
3 2 EXT_STMT
3 ECHO !0
4 > RETURN 1
branch: # 0; line: 2- 3; sop: 0; eop: 4
Donc l'indication que tu donne stealth35 déplace le comptage dans la première partie qui n'est exécutée qu'une seule fois au lieu de la laisser dans la seconde où elle sera exécutée à chaque tour. Ainsi, un count va ou non être exécuté plusieurs fois... pour retourner toujours le même résultat, répétition qui, tu en conviendras, est totalement sans intérêt
je pense que le Ainsi donne un sens bizarre à ton explication (que j'ai déjà donnée)