Accueil > Tutoriels pour Webmasters > [PHP] Calculer le temps d'exécution

[PHP] Calculer le temps d'exécution

Pour optimiser les performances d'un script PHP il est très intéressant de pouvoir calculer le temps d'exécution d'un code PHP. Ce tutoriel simple et facile propose un code PHP pour chronométrer le temps d'exécution d'un script PHP.

En chronométrant avec précision, avec une précision à la milliseconde, chaque partie d'un page PHP, il est possible de savoir combien de temps de traitement est nécessaire pour le serveur. Cela permet d'effectuer des modifications pour savoir si ça améliore les performances.

Code PHP

L'idée principale est simple et consiste simplement à obtenir l'heure en milliseconde au début du script puis à la fin du script. En souscrivant l'heure de fin par rapport à l'heure de début on obtient le temps d’exécution.

  1. <?php
  2. // timestamp en millisecondes du début du script (en PHP 5)
  3. $timestamp_debut = microtime(true);
  4.  
  5. /*
  6.  * Execution du code PHP
  7.  * Exemple : affichage d'une page, script spécifique, requête SQL ...
  8.  */
  9.  
  10. // timestamp en millisecondes de la fin du script
  11. $timestamp_fin = microtime(true);
  12.  
  13. // différence en millisecondes entre le début et la fin
  14. $difference_ms = $timestamp_fin - $timestamp_debut;
  15.  
  16. // affichage du résultat
  17. echo 'Exécution du script : ' . $difference_ms . ' secondes.';
  18.  
  19. // Astuce pour cacher l'affichage du temps d'execution
  20. echo '<!-- Exécution du script : ' . $difference_ms . ' secondes. -->';
  21. ?>

Astuce pour certains scripts

Dans certains cas le résultat peut être faussé si le serveur était anormalement surchargé au moment où il affichait une portion d'un script. Il est possible d'effectuer plusieurs centaines de fois une partie du code, pour être sûr du temps moyen nécessaire pour exécuter une portion de code. Pour cela, le code PHP suivant pourra être utilisé.

  1. <?php
  2. // timestamp en millisecondes du début du script (en PHP 5)
  3. $timestamp_debut = microtime(true);
  4.  
  5. for ($i=0 ; $i<400 ; $i++) {
  6. /*
  7.   * Execution du code PHP au moins 400 fois
  8.   * (à adapter selon le temps d'exécution du script)
  9.   */
  10. }
  11.  
  12. // timestamp en millisecondes de la fin du script
  13. $timestamp_fin = microtime(true);
  14.  
  15. // différence en millisecondes entre le début et la fin
  16. $difference_ms = $timestamp_fin - $timestamp_debut;
  17.  
  18. // affichage du résultat
  19. echo 'Exécution du script : ' . $difference_ms . ' secondes.';
  20. ?>