-
Notifications
You must be signed in to change notification settings - Fork 0
TimerTool
Gérits Aurélien edited this page Feb 18, 2026
·
2 revisions
TimerTool est un composant de profiling haute précision. Il permet de mesurer le temps d'exécution et la consommation mémoire (RAM) de différents segments de code. Grâce à son architecture Multiton, il est accessible partout sans injection de dépendance.
Namespace : Magepattern\Component\Tool\TimerTool
L'avantage majeur est de pouvoir "piquer" des sondes de mesure n'importe où dans le framework en utilisant un nom d'instance (ex: 'app').
// 1. Initialisation dans index.php ou le Bootstrap
use Magepattern\Component\Tool\TimerTool;
TimerTool::getInstance('app')->start();
// 2. Mesure dans un Model (ex: une requête lourde)
TimerTool::getInstance('app')->lap('Debut_Query_SQL');
$db->fetchAll("SELECT * FROM large_table");
TimerTool::getInstance('app')->lap('Fin_Query_SQL');
// 3. Récupération du rapport final dans le footer ou un log
$report = TimerTool::getInstance('app')->stop(1.5); // Alerte si > 1.5s- Monitoring Mémoire À chaque appel de lap(), l'outil enregistre :
- memory : Utilisation actuelle de la RAM.
- peak : Le pic de consommation atteint depuis le début du script.
- Gestion de la Pause Utile pour exclure le temps d'attente d'une API externe ou d'une interaction utilisateur du calcul de performance de votre code local.
$timer = TimerTool::getInstance('process');
$timer->start();
$timer->pause();
sleep(2); // Ce temps ne sera pas compté
$timer->resume();
$timer->stop();- Détection de lenteur (Slow Log) Si un seuil est passé en argument de stop(), l'outil utilise automatiquement le Logger de Magepattern pour enregistrer un avertissement si le temps total dépasse la limite.