CloudCastle Clock

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

Stopwatch — cronometro

Scopo

Cronometro monotòno basato su hrtime(): giri con etichette, arresto ripetuto senza perdita del risultato, elapsed(): TimeSpan, il metodo statico measure(callable).

A cosa serve e come usarlo

Profilazione di porzioni di codice, misurazione delle fasi di una pipeline: $watch->lap('preparazione'), Stopwatch::measure(fn () => lavoro_pesante()).

Esempio

$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-pattern

Non usarlo per il tempo «da parete» — il cronometro non conosce deliberatamente il calendario.

Ciclo di vita

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

Confronto della funzionalità con gli analoghi

Aspetto🏆 CloudCastlesymfonycarbonlcobuccibesteergebnis
Base monotòna (hrtime)✅❌❌❌❌❌
Giri con etichette✅❌❌❌❌❌
Misurazione di una callback in una riga✅❌❌❌❌❌
Risultato come TimeSpan✅❌❌❌❌❌
Totale🏆 400000

← Torna all'elenco delle funzionalità


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