Подбери себе компилер Крис Касперски ака мыщъх Хакер, номер #075, стр. 075-102-6 В общем, поживем - увидим. Будем надеяться, что в будущем компиляторы не разжиреют окончательно, и здравый смысл восторжествует над разумом. Пока же бесспорных победителей нет, и мудрые линуксоиды вынуждены использовать целый зоопарк компиляторов. CD На Xakep CD/DVD ты найдешь последние версии различных веток компиляторов GCC и также ICC. INFO Интеловский компилятор более агрессивно выравнивает структуры данных и учитывает архитектуру кэш-контроллера, за счет чего выигрывает несколько процентов производительности. Безоговорочное превосходство ICC - результат использования SSE-регистров, о которых GCC 2.95 ничего не знает. Оптимизирующие компиляторы наиболее эффективны в оптимизации кривого кода или мультимедийных приложений, задействующих векторные операции. Ни того, ни другого нет в ядре, поэтому его лучше компилировать наиболее устойчивым и совместимым компилятором. Все равно всю производительность съест ввод/вывод. ICC традиционно силен в следующих областях: 3D-приложения, графические программы, математические пакеты, задачи численного моделирования, видео/аудио-compression/decompression, плавающая арифметика. ICC поддерживает технологию OpenMP (Open Multi Processing - открытый параллелизм), а GCC пока что нет, поэтому на кластерных установках ICC потенциально способен дать некоторый выигрыш, впрочем, Атлоновый кластер будет все равно дешевле. WWW Большое количество сравнительных тестов на GCC можно найти на сайте составителя популярного дистрибутива SuSE: www.suse.de/~aj/SPEC/. Чем народ компилирует ядро? По данным www.kerneltrap.org более 80% пользователей компилируют ядро новыми версиями GCC. 8% отдают предпочтение GCC 2.95, и 10% не перекомпилируют ядро вообще. Это доказывает, что не всякое господствующее мнение - правильное. Еще тесты Сравнительные тесты ICC 8.1 и 3.3.1 на EEMBC 1.1 бенчмарке. EEMBC расшифровывается как Embedded Microprocessor Benchmark Consortium, измеряет усредненную производительность на репрезентативной выборке из сетевых, офисных и вычислительных тестов. Advanced Optimization подразумевает следующие ключи: Intel C++ Compiler: -03 -ipo –xW; GCC 3.3.1: -03 -march=pentium4 -mcpu=pentium4 -msse -msse2 –mmmx -funroll-loops -ffast-math -fomit-frame-pointer -mfpmath=sse. Подробнее об это можно почитать на www.qnx.com/download/download/10028/Intel_Compiler_Product_Brief.pdf. |