0Pricing
JavaScript Academy · Lezione

Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione

Esegui il profiling per piccoli passi: misuri con console.time/timeEnd e semplici timer, individui il codice più impegnativo, modifichi una cosa alla volta e misuri di nuovo.

Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione è una lezione JavaScript Academy gratuita su CoddyKit. Questa è la lezione 3 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento JavaScript Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso JavaScript Academy include 3 lezioni in totale.

Perché fare profiling?

Obiettivo: misurate → modificate → misurate di nuovo.

  • Usate console.time/timeEnd per una misurazione rapida
  • Usate un piccolo helper now() per le misurazioni manuali
  • Concentratevi solo sul codice caldo
  • Modificate una cosa alla volta
Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 1

Dimostrazione di console.time

console.time stampa quanto tempo ha richiesto il blocco con l'etichetta indicata. È un ottimo primo passo.

// 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);
Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 2

Helper per la misurazione manuale

La misurazione manuale consente di racchiudere qualsiasi funzione e confrontare le esecuzioni con lo stesso input.

// 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;
});
Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 3

Trovare il codice caldo

Tenete traccia delle chiamate e del tempo per capire dove l'app esegue più lavoro; ottimizzate prima la funzione più calda.

// 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);
Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 4

Misurazione prima e dopo

Misurate prima e dopo una modifica. Mantenete lo stesso input e confrontate solo i numeri.

// 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);
Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 5

Buone pratiche per le misurazioni

Suggerimenti:

  • Usate gli stessi input nelle diverse esecuzioni.
  • Eseguite una fase di riscaldamento, poi misurate.
  • Riducete i log durante la misurazione.
  • Modificate una cosa sola e misurate di nuovo.
  • DevTools/Node dispongono di strumenti di registrazione; iniziate con un semplice console.time.
Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 6

Quiz sulle basi di console.time

Controllo rapido: strumento per misurazioni rapide.

Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 7

Riepilogo

Riepilogo: iniziate con console.time e un piccolo helper now(). Individuate il codice caldo, apportate una modifica semplice e misurate di nuovo usando gli stessi input.

Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione — illustrazione 8

Domande Frequenti

La lezione «Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione» è gratuita?

Sì — il testo completo di «Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso JavaScript Academy, passa a CoddyKit PRO. Il corso JavaScript Academy include 3 lezioni in totale.

Cosa imparerò in «Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione»?

Esegui il profiling per piccoli passi: misuri con console.time/timeEnd e semplici timer, individui il codice più impegnativo, modifichi una cosa alla volta e misuri di nuovo. Eserciti JavaScript Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare JavaScript Academy?

Non è richiesta alcuna esperienza precedente. JavaScript Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 3.

Quanto tempo richiede la lezione «Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione JavaScript Academy?

Sì. Ogni lezione JavaScript Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Basi della Big-O, percorsi caldi e freddi (vantaggi per principianti)
  2. Evitare le perdite — closure, timer e riferimenti
  3. Introduzione al profiling (Node/DevTools) — semplici abitudini di misurazione
← Torna a JavaScript Academy