Geheugen
Rust-programma's hebben 3 geheugenregio's waar gegevens worden opgeslagen:
- datageheugen - Voor gegevens met een vaste grootte die statisch zijn (d.w.z. altijd beschikbaar gedurende de hele levensduur van het programma). Denk aan de tekst in uw programma (bijv. "Hello World!"): de bytes van deze tekst worden slechts vanaf één plek gelezen en kunnen daarom in deze regio worden opgeslagen. Compilers doen veel optimalisaties met dit soort gegevens, en ze worden over het algemeen als zeer snel in gebruik beschouwd omdat de locaties bekend en vast zijn.
- stackgeheugen - Voor gegevens die als variabelen binnen een functie worden gedeclareerd. De locatie van dit geheugen verandert nooit gedurende de duur van een functieaanroep; hierdoor kunnen compilers code optimaliseren zodat stackgegevens zeer snel toegankelijk zijn.
- heapgeheugen - Voor gegevens die worden gecreëerd terwijl de applicatie draait. Gegevens in deze regio kunnen worden toegevoegd, verplaatst, verwijderd, van grootte veranderd, enz. Vanwege de dynamische aard ervan wordt het over het algemeen als langzamer in gebruik beschouwd, maar het maakt veel creatievere manieren van geheugengebruik mogelijk. Wanneer gegevens aan deze regio worden toegevoegd, noemen we dit een allocatie. Wanneer gegevens uit deze regio worden verwijderd, noemen we dit een deallocatie.