← Cloudflare Workers / workers / runtime-apis
Výkon a časovače
Kontext
Workers runtime podporuje podmnožinu Performance API ↗, používá se k měření časování a výkonu, stejně jako časování subrequestů a dalších operací.
performance.now()
performance.now() metoda ↗ vrací časové razítko v milisekundách, které představuje čas uplynulý od performance.timeOrigin.
Když jsou Workery nasazeny na Cloudflare, z bezpečnostních důvodů zmírnění útoků Spectre, API, které vrací časovače, včetně performance.now() ↗ a Date.now() ↗, posunou se nebo zvýší pouze po provedení vstupně výstupní operace. Uvažte následující příklady:
const start = performance.now();
for (let i = 0; i < 1e6; i++) {
// do expensive work
}
const end = performance.now();
const timing = end - start; // 0const start = performance.now();
const response = await fetch("https://developers.cloudflare.com/");
const end = performance.now();
const timing = end - start; // duration of the subrequest to developers.cloudflare.comObalením subrequestu voláními performance.now() nebo Date.now() API můžete měřit dobu trvání subrequestu, načtení klíče z KV, objektu z R2 nebo jakékoli jiné formy I/O operací ve vašem Workeru.
Při lokálním vývoji se ale časovače zvyšují bez ohledu na to, zda dochází k I/O operacím. Pokud tedy potřebujete měřit časování části kódu, která je náročná na CPU a nezahrnuje I/O, můžete Worker spustit lokálně pomocí Wrangler, který využívá open-source Workers runtime, workerd ↗, the same runtime that your Worker runs in when deployed to Cloudflare.
performance.timeOrigin
performance.timeOrigin ↗ API je vlastnost pouze pro čtení, která vrací výchozí časové razítko, od něhož se odvíjejí další měření.
V runtime prostředí Workers timeOrigin vlastnost vrátí 0.