Я разрабатываю приложение в C++ на Windows XP, с помощью Eclipse в качестве моего IDE и Основанной на make-файле системы сборки (с инструментами пользователя для генерации Make-файлов). Кроме того, я использую LZZ, который позволяет мне писать единственный файл, который затем разделяется на заголовок и файл реализации. Я использую порт TDM GCC 4.
Какие инструменты или методы я мог использовать для определения точно, сколько времени каждая часть процесса сборки берет, и почему это медленно?
Особенно интересный был бы:
P.S.: Это - мой домашний проект, таким образом, дорогие инструменты вне досягаемости для меня, но могли быть зарегистрированы здесь так или иначе, если они особенно релевантны.
Так как Make и GCC очень многословны о том, что они делают, очень грубый способ получить высокоуровневый обзор потраченного времени - это передать вывод через скрипт, который делает временные метки на каждой строке:
make | perl -MTime::HiRes -pe "printf '%.5f ', Time::HiRes::time()"
(Я использую ActivePerl для этого, но из того, что я собрал, Клубничный Perl может теперь быть рекомендуемой Perl версией для Windows. )
Переформатируйте или обработайте временные метки по своему усмотрению.
Для получения более подробной информации о GCC, в частности, используйте опцию -time-report
.
Чтобы узнать, сколько накладных расходов добавляет Затмение, используйте секундомер для построения времени из Затмения и из командной строки.
Попробуйте SparkBuild , бесплатный замена GMake / Nmake, который может генерировать аннотированный журнал сборки с точной информацией о времени для каждой работы в сборке. Вы можете загрузить этот файл в SparkBuild Insight, чтобы получить графический обзор того, где идет время.
См. в этом блоге Например, как его использовать.
Посмотрите на
для идей для редактора WST XML и потенциально других типов редакторов
-121--3622142- Если вы используете повышение, скорее всего, большую часть времени проводится в экземпляре шаблона и последующей оптимизации. Вы можете сказать GCC сообщать о проведении времени, ,
-Time-Report
(опция Unix, может быть что-то еще в Windows GCC)
, и если вы пытаетесь ускорить время компиляции, отключить оптимизацию, -O0
(последнее письмо ноль номер, первая буква является капиталом O)