2014-12-05 4 views
7

Компиляция простое приложение привет мир, как это:Почему компилятор Rust генерирует огромные исполняемые файлы?

fn main() { 
    println!("Hello, World!"); 
} 

Генерирует относительно огромный 822 KB исполняемый файл с помощью опции компилятора по умолчанию (rustc hello.rs).

Почему это происходит и как лучше всего уменьшить размер исполняемого файла?

+6

AFAIK, много или все стандартные библиотеки слинкованную в статически по умолчанию. Попробуйте оптимизировать '-O' и/или' strip'. Для ударов и хихиканья вы также можете динамически ссылаться на libstd и т. Д. (Не уверен, как, хотя). – sellibitze

+0

'-Z lto' (оптимизация ссылок) также сильно сокращает количество вещей. –

ответ

10
  1. Стандартная библиотека связана статически по умолчанию. Вы можете изменить это, передав параметр -C prefer-dynamic компилятору.

  2. Ржавчина все еще очень молодой язык с неполным оптимизированным компилятором. По-прежнему остается много возможностей для улучшения скорости компиляции, скорости и размера кода, формулировки сообщений об ошибках и т. Д.

-1

rustc -C opt-level=2 hello.rs дает 4kb бинарный

+1

Это не универсально. Используя Rust 1.19.0 на macOS, эта команда создает исполняемый файл ~ 400K. – Shepmaster

Смежные вопросы