Да я использовал и Хвост для Win32 и хвост на Cygwin. Я нашел, что оба превосходны, хотя я предпочитаю Cygwin немного, поскольку я в состоянии выследить файлы по Интернету эффективно без катастрофических отказов (Хвост для Win32 отказал на мне в некоторых случаях).
Так в основном, я использовал бы хвост на Cygwin и перенаправил бы вывод в файл на моей локальной машине. У меня тогда был бы этот файл открытым в Vim и перезагрузке (: e) это при необходимости.
Обычно из-за такой наивности и надежды на улучшение.
Вот почему своевременная компиляция является такой выигрышной стратегией. Соберите статистику, а затем оптимизируйте ее для общего случая.
Ссылки:
Для краткости: лучше, чем мы!
Вы можете взглянуть на это: http://www.linux-kongress.org/2009/slides/compiler_survey_felix_von_leitner.pdf
Дидье
Вы можете посмотреть проект Spiral .
Вдобавок ко всему, оптимизация - это сложная задача в целом. Отчасти это почему у компилятора gcc так много опций. Если вы знаете что-то о кэше и страницах, вы можете делать некоторые вещи вручную и запрашивать выполнение других через компилятор, но нет двух одинаковых машин, поэтому подход должен быть специальным.
Хороший вопрос. Вы спрашиваете о так называемых спекулятивных оптимизациях.
Динамические компиляторы используют как статическую эвристику, так и информацию профиля. Статические компиляторы используют эвристику и (автономную) профильную информацию. Последний часто упоминается как PGO (Profile Guided Optimizations).
Существует множество статей о встраиваемых политиках. Наиболее исчерпывающим из них является
Эмпирическое исследование встраивания методов для своевременного компилятора Java
. Он также содержит ссылки на связанные работы и резкую критику некоторых из рассмотренных статей (оправданно).
В общем, современные компиляторы пытаются использовать анализ воздействия для оценки потенциального эффекта спекулятивных оптимизаций перед их применением.
PS Развертывание цикла - это старая классическая штука, которая помогает только для некоторых жестких циклов, которые выполняют только операции по обработке чисел (без вызовов и т. Д.). Встраивание методов - гораздо более важная оптимизация в современных компиляторах.