Por que os executáveis do Rust são tão grandes?
Tendo encontrado Rust e tendo lido os dois primeiros capítulos da documentação, acho a abordagem e a maneira como eles definiram a linguagem particularmente interessante. Então eu decidi molhar meus dedos e comecei com Hello world ...
Eu fiz isso no Windows 7 x64, aliás.
fn main() {
println!("Hello, world!");
}
Emissãocargo build
e olhando para o resultado emtargets\debug
Eu encontrei o resultado.exe
sendo 3MB. Após algumas pesquisas (é difícil encontrar a documentação das bandeiras da linha de comando de carga ...)--release
opção e criou a versão build. Para minha surpresa, o tamanho do .exe ficou menor em uma quantidade insignificante: 2,99 MB em vez de 3 MB.
Então, confessando que sou novato no Rust e em seu ecossistema, minha expectativa seria que uma linguagem de programação de sistemas produzisse algo compacto.
Alguém pode elaborar o que o Rust está compilando, como é possível que produza imagens tão grandes a partir de um programa de 3 linhas? Está compilando em uma máquina virtual? Existe um comando strip que eu perdi (informações de depuração dentro da versão do build?)? Mais alguma coisa que permita entender o que está acontecendo?