Linux для всех / Использование альтернативных компиляторов в Gentoo на примере Intel Compiler Suite
В этой статья я хочу рассказать, как в Gentoo и других portage-based дистрибутивах для сборки пакетов исползовать отличный от gcc компилятор.
Выбор альтернативных компиляторов обширен: Intel Compiler Suite, Sun Studio Express Compilers, TenDRA C/C++ Compiler, Tiny C Compiler и прочие легковесные компиляторы.
Я рассмотрю переход на самый популярный (AFAIK) из альтернативных компиляторов — icc.
Вы можете спросить: а зачем это вообще надо? Дело в том, что icc оптимизирует код для исполнения на интеловских процессорах лучше, чем gcc.
Сравните сами:
| тестируемая программа | bunzip2 linux-2.6.32.tar.bz2 | bzip2 linux-2.6.32.tar | oggenc -q5 testfile.wav | lame -V4 testfile.wav |
|---|---|---|---|---|
| среднее время выполнения (gcc) | 22.118 | 91.452 | 108.554 | 98.438 |
| среднее время выполнения (icc) | 20.373 | 68.284 | 88.581 | 84.626 |
| прирост скорости | 8.5% | 33.9% | 22.5% | 16.3% |
Согласитесь, весьма неплохие результаты.
Конфигурация компьютера, на котором производилась проверка: Intel Core 2 Duo T7250 @ 2.00 GHz; linux 2.6.31-gentoo-r7 x86; gcc-4.4.2; icc-11.1.056; все тесты выполнялись в tmpfs — разделе, дабы не грешить на скорость i/o.
AD: