Dopo aver trovato Rust e aver letto i primi due capitoli della documentazione, trovo particolarmente interessante l'approccio e il modo in cui hanno definito la lingua. Così ho deciso di bagnarmi le dita e ho iniziato con Hello world ...
L'ho fatto su Windows 7 x64, a proposito.
fn main() {
println!("Hello, world!");
}
Emettendo cargo build
e guardando il risultato in targets\debug
ho trovato il risultante .exe
essere 3 MB. Dopo alcune ricerche (la documentazione delle bandiere della riga di comando del carico è difficile da trovare ...) Ho trovato l' --release
opzione e ho creato la build di rilascio. Con mia sorpresa, la dimensione .exe è diventata più piccola di una quantità insignificante: 2,99 MB anziché 3 MB.
Quindi, confessando che sono un principiante di Rust e del suo ecosistema, la mia aspettativa sarebbe stata che un linguaggio di programmazione di sistemi avrebbe prodotto qualcosa di compatto.
Qualcuno può approfondire ciò che Rust sta compilando, come è possibile che produca immagini così grandi da un programma di 3 linee? Si sta compilando su una macchina virtuale? C'è un comando strip che ho perso (informazioni di debug all'interno della build di rilascio?)? Qualcos'altro che potrebbe consentire di capire cosa sta succedendo?