Introduktion til profiling (Node/DevTools) — små timingvaner
Profilér i små trin: mål med console.time/timeEnd og enkle timere, find varm kode, ændr én ting, og mål igen.
Introduktion til profiling (Node/DevTools) — små timingvaner er en gratis JavaScript Academy-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i JavaScript Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. JavaScript Academy-kurset indeholder 3 lektioner i alt.
Hvorfor profilere?
Mål: Mål → ændr → mål igen.
- Brug console.time/timeEnd til hurtig tidsmåling
- Brug en lille now()-hjælpefunktion til manuelle tidsmålinger
- Fokusér kun på varm kode
- Foretag én ændring ad gangen

Demo af console.time
console.time udskriver, hvor lang tid blokken med mærkatet tog. Et godt første skridt.
// Measure a small loop with console.time/timeEnd
console.time("sum");
let s = 0;
for (let i = 0; i < 100000; i = i + 1) {
s = s + i;
}
console.timeEnd("sum");
console.log("sum value:", s);

Hjælpefunktion til manuel tidsmåling
Manuel tidsmåling hjælper dig med at omslutte enhver funktion og sammenligne kørsler med de samme inddata.
// A tiny now() helper that works in many runtimes
const now = (typeof performance !== "undefined" && performance.now)
? function () { return performance.now(); }
: function () { return Date.now(); };
// Time a function manually
function timeFn(label, fn) {
const t1 = now();
const out = fn();
const t2 = now();
console.log(label + " ms:", (t2 - t1));
return out;
}
timeFn("small work", function () {
let x = 0;
for (let i = 0; i < 50000; i = i + 1) { x = x + i; }
return x;
});

Find varm kode
Følg kald og tidsforbrug for at se, hvor din app bruger arbejdet; optimér den varmeste funktion først.
// Count calls and total time to find hot spots
const metrics = { calls: 0, totalMs: 0 };
function hotWork(n) {
const t1 = now();
let sum = 0;
for (let i = 0; i < n; i = i + 1) {
sum = sum + (i % 3);
}
const t2 = now();
metrics.calls = metrics.calls + 1;
metrics.totalMs = metrics.totalMs + (t2 - t1);
return sum;
}
// Simulate usage
for (let k = 0; k < 5; k = k + 1) {
hotWork(80000);
}
console.log("calls:", metrics.calls, "avg ms:", metrics.totalMs / metrics.calls);

Tidsmåling før og efter
Mål før og efter en ændring. Brug de samme inddata, og sammenlign kun tallene.
// Compare two approaches with the same input
const hay = [];
for (let i = 0; i < 2000; i = i + 1) { hay.push(String(i)); }
const needles = [];
for (let i = 0; i < 1000; i = i + 1) { needles.push(String(i * 2)); }
function slowIncludes() {
let count = 0;
for (const n of needles) {
if (hay.includes(n)) { count = count + 1; }
}
return count;
}
function fastSet() {
const set = new Set(hay);
let count = 0;
for (const n of needles) {
if (set.has(n)) { count = count + 1; }
}
return count;
}
const c1 = timeFn("includes run", slowIncludes);
const c2 = timeFn("set.has run", fastSet);
console.log("counts:", c1, c2);

Gode vaner ved tidsmåling
Tip:
- Brug de samme inddata i alle kørsler.
- Varm op én gang, og mål derefter.
- Begræns logning under tidsmålingen.
- Ændr én ting, og mål igen.
- DevTools/Node har optagere; begynd med den enkle console.time.

Quiz om det grundlæggende i console.time
Hurtigt tjek: Hurtigt værktøj til tidsmåling.

Opsummering
Opsummering: Begynd med console.time og en lille now()-hjælpefunktion. Find varm kode, foretag en enkel ændring, og mål igen med de samme inddata.

Lær JavaScript med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 59
- Lektioner
- 200
Ofte stillede spørgsmål
Er lektionen “Introduktion til profiling (Node/DevTools) — små timingvaner” gratis?
Ja — alle 3 lektioner i læringssporet JavaScript Academy, inklusive “Introduktion til profiling (Node/DevTools) — små timingvaner”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. JavaScript Academy-kurset indeholder 3 lektioner i alt.
Hvad lærer jeg i “Introduktion til profiling (Node/DevTools) — små timingvaner”?
Profilér i små trin: mål med console.time/timeEnd og enkle timere, find varm kode, ændr én ting, og mål igen. Du øver dig i JavaScript Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på JavaScript Academy?
Der kræves ingen tidligere erfaring. JavaScript Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.
Hvor lang tid tager lektionen “Introduktion til profiling (Node/DevTools) — små timingvaner”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne JavaScript Academy-lektion?
Ja. Alle JavaScript Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- Det grundlæggende i Big-O og hot kontra cold paths (begynderfordele)
- Undgå leaks — closures, timere og referencer
- Introduktion til profiling (Node/DevTools) — små timingvaner