Есть ли оптимизаторы, которые не заботятся о времени компиляции? - PullRequest
2 голосов
/ 21 августа 2010

Существуют ли какие-либо используемые компиляторы, которые уделяют мало внимания скорости компиляции, а стремятся к максимальной оптимизации даже при замедлении времени компиляции на порядок (а)?

Мне кажется, что компиляция занимает часы / дни против минут / секунды, и это не будет серьезной проблемой, когда вы приблизитесь к финальному выпуску. (И если у вас есть достаточно тестов, это должно быть безопасно.)


Edit: меня интересуют компиляторы, которые включают этапы оптимизации, которые могут запускаться на скромных сторонних программах часами или даже днями (что обычно занимает 10 минут или меньше при обычной оптимизации, например, ядре Linux, apache или GCC. самостоятельно).

Ответы [ 2 ]

4 голосов
/ 21 августа 2010

На самом деле, да.Не потому, что оптимизатор работает медленно, а потому, что вы просите оптимизатор сделать то, что по необходимости занимает много времени.Например, я использую LLVM для оптимизации целых программ: исходные файлы, которые были скомпилированы, а также все библиотеки, которые используют исходные файлы.Все связано как промежуточный код и оптимизирован вместе.Эта оптимизация заметно медленнее, чем связывание отдельно оптимизированных объектных файлов.Но мне все равно, по двум причинам: 1, оптимизация выполняется по всей программе, и это стоит подождать (;-) и 2, компьютеры становятся все быстрее и быстрее.

2 голосов
/ 21 августа 2010

В некоторой степени они «медленные», просто компьютеры настолько быстры и обладают такой объемной памятью, что вы не замечаете, как раньше…

::немного поэкспериментируйте с g ++ ::

Выбор немного математического кода, который я написал для работы, которую я получаю (около 24k LOC в c ++ в 75ish-файлах с интенсивным использованием библиотек ROOT , но нетшаблоны)

  • -O0: 8,88 секунды
  • -O4: 13,60 секунды
  • -Os: 11,32 секунды

Хм ... не составляет большую часть времени компиляции.Возможно, это просто доминирует время доступа к файлу.Может быть, я должен попробовать это с mplayer или с чем-то еще очень интенсивным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...