Perf icon

Le code source

Le code source de tous les benchmarks est disponible sur github.com/phpbenchmarks.

Le code de chaque outil benchmarké est divisé en 2 dépôts.
Exemple avec Twig :
  • phpbenchmarks/twig : installation de Twig, sans le code du benchmark.
    • Une branche par version mineure de Twig, et par benchmark. Exemple : twig_2.4_hello-world.
    • Contient init_benchmark.sh, avec une fonction init() qui permet d'initialiser le benchmark : composer install, suppression des caches etc.
    • Dépendances vers la version de Twig benchmarkée (majeure et mineure forcées, par exemple 2.4.*) et phpbenchmark/twig-common.
  • phpbenchmarks/twig-common : code du benchmark.
    • Le code source final du benchmark doit être compatible avec toutes les versions mineures d'une version majeure. Exemple : 2.*.
    • Une branche par version majeure et par benchmark. Exemple : twig_2_hello-world.
    • La gestion des versions est expliquée dans le README.md.
Perf icon

Améliorez les résultats

Commencez par récupérer le code source du dépôt dont vous voulez améliorer les performances :
git clone https://github.com/phpbenchmarks/twig.git
cd twig
git checkout twig_2.4_hello-world
source init_benchmark.sh && init
Ensuite, créez le virtual host (pensez à l'ajouter dans /etc/hosts), dont la configuration peut ressembler à ça pour nginx :
server {
    listen 80;
    server_name benchmark.loc;
    root /var/www/phpbenchmarks/twig/public;
    location / {
        try_files $uri /index.php$is_args$args;
    }
    location ~ ^/(index).php(/|$) {
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTPS off;
    }
    error_log /var/log/nginx/benchmark_error.log;
    access_log /var/log/nginx/benchmark_access.log;
}
Effectuez vos modifications, et envoyez les PR pour les 2 projets (si besoin).
N'hésitez pas à mettre un message dans la PR pour expliquer ce que peuvent apporter vos modifications.

Nous ferons des tests de benchmark avec vos modifications, et si les performances sont améliorées, nous relancerons les benchmarks.
Vous serez crédité dans l'historique des benchmarks, comme Witold Wasiczko pour Zend Framework 3 !