🇷🇺 Русский · 🇬🇧 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 | 🏆 CloudCastle | symfony | carbon | lcobucci | beste | ergebnis |
|---|---|---|---|---|---|---|
Base monotòna (hrtime) | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Giri con etichette | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Misurazione di una callback in una riga | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
Risultato come TimeSpan | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ |
| Totale | 🏆 4 | 0 | 0 | 0 | 0 | 0 |
← Torna all'elenco delle funzionalità
🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano