🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano
Stopwatch — chronomètre
Objectif
Un chronomètre monotone basé sur hrtime() : tours avec libellés, arrêt réitérable sans perte du résultat, elapsed(): TimeSpan, méthode statique measure(callable).
À quoi ça sert et comment l’utiliser
Profilage de portions de code, mesure des étapes d’un pipeline : $watch->lap('préparation'), Stopwatch::measure(fn () => travail_intensif()).
Exemple
$watch = Stopwatch::start();
$watch->lap('preparation');
$watch->lap('processing');
$total = $watch->stop(); // float seconds
$span = $watch->elapsed(); // TimeSpan
$cost = Stopwatch::measure(fn () => $job->run());
Anti-modèles
À ne pas utiliser pour l’heure murale — le chronomètre ignore délibérément le calendrier.
Cycle de vie
stateDiagram-v2
[*] --> Running: start()
Running --> Running: lap(label)
Running --> Stopped: stop()
Stopped --> Stopped: stop() (same result)
Stopped --> [*]: elapsed()/laps()
Comparaison de la fonctionnalité avec les concurrents
| Aspect | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
Base monotone (hrtime) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Tours avec libellés | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Mesure d’un callable en une ligne | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Résultat sous forme de TimeSpan | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Total | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Retour à la liste des fonctionnalités
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano