Просто обнаружив Rust и прочитав первые две главы документации, я нахожу подход и то, как они определили язык, особенно интересными. Так что я решил намочить пальцы и начал с Hello world ...
Я сделал это на Windows 7 x64, кстати.
fn main() {
println!("Hello, world!");
}
Выпустив cargo build
и посмотрев на результат в targets\debug
, я обнаружил, что результат .exe
составляет 3 МБ. После некоторого поиска (трудно найти документацию по флагам командной строки Cargo ...) я нашел параметр --release
и создал сборку релиза. К моему удивлению, размер .exe стал лишь незначительно: 2,99 МБ вместо 3 МБ.
Итак, признавшись, что я новичок в Rust и его экосистеме, я ожидал, что язык системного программирования создаст что-то компактное.
Может ли кто-нибудь уточнить, для чего компилируется Rust, как это возможно, что он создает такие огромные изображения из трехстрочной программы? Он компилируется в виртуальную машину? Есть ли пропущенная мной команда полосы (отладочная информация в сборке релиза?)? Что-нибудь еще, что могло бы позволить понять, что происходит?
min-sized-rust
для обзора всех различных методов минимизации двоичного размера Rust. Приложения. - person phoenix   schedule 23.02.2019