Il fut fait sans correcteur orthographique et grammaticale, il est aussi fort probable que des images et liens soient indisponible.
Des bench, des bench, oui mais des bench xdbug đ

Alors on trouve des Bench PHP partout sur le net, mais de deux choses lâune (ou plus) :
- Ils ne sont pas actualisés
- La version PHP et les infos serveurs ne sont pas indiqués
- Chaque bench en contredit dâautres
- Ils utilisent time() et microtime()(plus rarement), nâutilisent pas les fonctions de math ⊠et presque jamais $_SERVER[âREQUEST_TIMEâ]
- Le temps dâexĂ©cution est en variation constante, il est donc logique de faire des rĂ©sultats relatifs (%)
DĂ©butons donc avec ces bench qui sont peut-ĂȘtre complĂ©tement dĂ©biles, mais tester par soi-mĂȘme avec des approches diffĂ©rentes câest sympa :)
Toutes les sources et images sont disponibles ici : https://git.iglou.eu/adrien/benchmark_php/tree/master
Méthode
Jâai volontairement fait des scripts simples avec beaucoup de rĂ©pĂ©titions, jâai tentĂ© dâĂ©quilibrer le plus possible entre les entitĂ©s Ă tester.
Pour tester les entités avec XDB et KCG, chaque entité est dans une fonction.
Les loop sont de 100.000 et ils sont externes Ă la fonction de lâentitĂ© testĂ©e, afin de ne pas la prendre en compte dans le rĂ©sultat.
On obtient la moyenne par fonction âTempsPour100.000/100.000â tout simplement⊠TP100k Ă©tant le rĂ©sultat de la dĂ©finissions de main par les fonctions
Infos serveur
- Serveur virtuel utilisé uniquement en teste
- 8Go ram
- 4core 3Ghz
Infos logicielles
- Archlinux kernel 4.2.4
- Apache 2.4.17-2
- XDebug 2.3.3-1
- PHP 5.6.14-1
Infos PHP
- Cache désactivé
- GC activé
- Xdebug seulement le profileur est activé
Résultats
Parcourir un tableau,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_arrayLoop.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_arrayLoop.php
k = key; v = value; Pv = pointer to value;

OpĂ©rateurs de comparaison (Ă©gal et nâest pas Ă©gal),
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_comparisonOperators.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_comparisonOperators.php

Définir un array,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_deffineArray.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_deffineArray.php

Utilisation de echo,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_echo.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_echo.php

Utilisation de echo pour plusieurs variables (concat),
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_echo_multiVar.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_echo_multiVar.php

Définir des variables globales,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_globalVariables.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_globalVariables.php

Is array ?
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_isArray.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_isArray.php

Afficher une chaine,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_outputAString.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_outputAString.php

ConcatĂ©nation dâune chaine,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_stringConcat%C3%A9nation.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_stringConcatenation.php

If ou Switch ?
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_switch.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_switch.php

Unset me,
img : inuit.iglou.eu/adrien/benchmark_php/raw/master/php_unset.png
source : https://git.iglou.eu/adrien/benchmark_php/blob/master/php_unset.php

Pour ce qui est des licences, vu que quand on partage un truc, câest obligatoire, sinon vous ne pourrez pas rĂ©utiliser quoi que ce soitâŠ
Je conserve la paternitĂ©, câest obligatoire en France.
Donc pour le code :
/*
* Copyright 2015 Kara adrien
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
Pour les images :
Attribution (BY) : Le titulaire des droits autorise toute exploitation de lâĆuvre, y compris Ă des fins commerciales, ainsi que la crĂ©ation dâĆuvres dĂ©rivĂ©es, dont la distribution est Ă©galement autorisĂ©e sans restriction, Ă condition de lâattribuer Ă son lâauteur en citant son nom. Cette licence est recommandĂ©e pour la diffusion et lâutilisation maximale des Ćuvres.
Comme toujours, si vous relevez des erreurs, merci de mâen faire part, ça compte dans mes remises en question quotidiennes =D
Si je fais dâautres bench ils seront ajoutĂ©s ici, peu probable de pondre un autre sujet pour ça. Sauf si les prochains bench sont sous PHP7.
éa, les amis.