CloudCastle Clock

🇷🇺 Русский · 🇬🇧 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🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Base monotone (hrtime)✅❌❌❌❌❌
Tours avec libellés✅❌❌❌❌❌
Mesure d’un callable en une ligne✅❌❌❌❌❌
Résultat sous forme de TimeSpan✅❌❌❌❌❌
Total🏆 400000

← Retour à la liste des fonctionnalités


🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano