Mojo Academy · Lezione

Perché fn e i tipi aumentano la velocità

Colleghi il rigore alle prestazioni.

Lezione 2 di 413 passaggi

Perché fn e i tipi aumentano la velocità è una lezione Mojo Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. 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 Mojo Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Mojo Academy include 4 lezioni in totale.

La velocità nasce dalla conoscenza

Mojo è veloce perché conosce in anticipo i Suoi tipi. Con fn e le annotazioni, il compilatore può generare codice macchina compatto. ⚡

Python decide a runtime

Python standard controlla il tipo di un oggetto ogni volta che esegue un'operazione. Questo lavoro costante di dispatch contribuisce molto alla sua lentezza.

I tipi statici evitano i controlli

Quando un tipo è fissato in fase di compilazione, Mojo elimina i controlli del tipo a runtime. L'operazione diventa un'istruzione diretta e veloce.

fn add(a: Int, b: Int) -> Int:
    return a + b

fn richiede i tipi

Un fn La obbliga a dichiarare i tipi, fornendo al compilatore tutto ciò che gli serve per ottimizzare. Questo requisito è la fonte della sua velocità.

fn scale(x: Float64) -> Float64:
    return x * 2.0

Nessun boxing dei numeri

Python racchiude ogni numero in un oggetto nell'heap. Un Int tipizzato di Mojo vive direttamente come byte grezzi, senza wrapper da estrarre.

var count: Int = 42

I valori entrano nei registri

Poiché un numero tipizzato è costituito solo da byte, la CPU può mantenerlo in un registro veloce invece di seguire puntatori nella memoria.

L'inlining diventa possibile

Conoscere i tipi esatti consente al compilatore di applicare l'inline alle funzioni brevi, eliminando il costo delle chiamate nei cicli intensivi eseguiti milioni di volte.

I cicli vengono specializzati

Un ciclo tipizzato viene compilato in una sequenza fissa di istruzioni CPU. Il compilatore può persino srotolarlo o vettorizzarlo per ottenere un throughput maggiore.

fn total(n: Int) -> Int:
    var s = 0
    for i in range(n):
        s += i
    return s

Gli errori vengono rilevati presto

I tipi rilevano le incompatibilità in fase di compilazione, così il programma in esecuzione non deve spendere alcuna risorsa per gestirle. Sicurezza e velocità arrivano insieme.

def resta flessibile

Una def può omettere i tipi e comportarsi come Python: è comodo, ma più lento. Può scegliere un livello di rigidità maggiore solo dove la velocità conta davvero.

def greet(name):
    print("Hi", name)

La rigidità è un compromesso

Si sacrifica un po' di flessibilità per ottenere molta più velocità. Nei percorsi intensivi il compromesso è vantaggioso: fn insieme ai tipi permette a Mojo di ridurre il divario con C.

Verifica rapida

Colleghi la rigidità alle prestazioni.

Riepilogo

Il codice fn tipizzato consente a Mojo di saltare i controlli dinamici, evitare il boxing e generare codice macchina specializzato. La rigidità nei percorsi intensivi è il segreto della velocità. 🎯

Gratis per iniziare

Impara Mojo con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «Perché fn e i tipi aumentano la velocità» è gratuita?

Sì — il testo completo di «Perché fn e i tipi aumentano la velocità» è 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 Mojo Academy, passa a CoddyKit PRO. Il corso Mojo Academy include 4 lezioni in totale.

Cosa imparerò in «Perché fn e i tipi aumentano la velocità»?

Colleghi il rigore alle prestazioni. Eserciti Mojo 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 Mojo Academy?

Non è richiesta alcuna esperienza precedente. Mojo 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 2 di 4.

Quanto tempo richiede la lezione «Perché fn e i tipi aumentano la velocità»?

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 Mojo Academy?

Sì. Ogni lezione Mojo 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. Scrivere un benchmark corretto
  2. Perché fn e i tipi aumentano la velocità
  3. Leggere i numeri con obiettività
  4. Abitudini idiomatiche in Mojo
← Torna a Mojo Academy