CloudCastle Clock

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

Stopwatch — cronómetro

Propósito

Cronómetro monótono basado en hrtime(): vueltas con etiquetas, parada repetida sin pérdida del resultado, elapsed(): TimeSpan, measure(callable) estático.

Para qué y cómo usarlo

Perfilado de fragmentos de código, medición de etapas de un pipeline: $watch->lap('preparación'), Stopwatch::measure(fn () => trabajo_heroico()).

Ejemplo

$watch = Stopwatch::start();
$watch->lap('preparation');
$watch->lap('processing');
$total = $watch->stop();            // float seconds
$span = $watch->elapsed();          // TimeSpan
$cost = Stopwatch::measure(fn () => $job->run());

Antipatrones

No lo use para el tiempo «de pared» — el cronómetro deliberadamente desconoce el calendario.

Ciclo de vida

stateDiagram-v2
    [*] --> Running: start()
    Running --> Running: lap(label)
    Running --> Stopped: stop()
    Stopped --> Stopped: stop() (same result)
    Stopped --> [*]: elapsed()/laps()

Comparación de la característica con alternativas

Aspecto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Base monótona (hrtime)✅❌❌❌❌❌
Vueltas con etiquetas✅❌❌❌❌❌
Medición de un callback en una línea✅❌❌❌❌❌
Resultado como TimeSpan✅❌❌❌❌❌
Total🏆 400000

← Volver a la lista de características


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