2015-10-17 3 views
2

С тех пор я начал использовать Qt как в Windows 7, так и в Linux Ubuntu, и он всегда быстро компилируется с использованием MinGW для Windows. Но за последние пару лет или около того, возможно, благодаря обновлениям в версии Qt и MinGW, я начал медленно замедлять скорость компиляции внутри Windows. Я провел некоторое исследование, пытаясь найти, почему MinGW начал становиться настолько медленным по сравнению с Linux (это было не раньше!), И все, что мне говорили, было то, что MinGW был медленнее в Windows и что было бы лучше, если возможно, просто используйте Linux.MinGW компиляция избыточной медленной

Поскольку я хотел продолжить свой проект, я последовал этому предложению и с тех пор, как я использую Linux с редкими проблемами. Теперь ситуация заключается в том, что я должен вернуться в Windows (теперь обновленный до Windows 10), чтобы сделать визуальные исправления для этой ОС, и мне нужно снова работать с MinGW, сталкиваясь с той же проблемой, что и раньше.

Но по какой-то причине кажется, что медленность MinGW стала даже наихудшей! Хотя до того, как я, по крайней мере, смог скомпилировать приложение примерно за 4 минуты, теперь в последний раз, когда я пробовал, мне потребовалось 38 минут, прежде чем я сдался и пошел спать - и это для проекта, который занимает всего 1:03 минуту для компиляции в Linux [в той же конфигурации компиляции]!

Ну я до сих пор известно о slowliness из MinGW, но, как быстро исследования вокруг этой проблемы в Интернете показывает, что это просто слишком медленно: все бэктестинга можно найти в других потоков здесь на SO показывает в Лучшее 2x-3 раза больше времени для компиляции проекта, а не 38x + !!

Итак, я хотел бы знать, какие возможные проблемы у меня могут возникнуть в моей Windows, чтобы это ускорилось. Я знаю, что в итоге я установил по крайней мере 4 разные версии MinGW; может ли это вызвать проблему?

Интересно также отметить, что при компиляции с использованием опции -j и просмотра журнала компиляции вывода в Qt Creator вместе с Process Explorer есть моменты, когда компиляция простых пауз в течение 10 секунд или более и загрузка процессора падает с ~ 100% до 5%, при этом ничего не происходит до тех пор, пока он не будет продолжать процесс компиляции. Я уверен, что эта постоянная пауза является частью указанного выше среднего времени, но я не знаю, почему MinGW демонстрирует это поведение.

Любая помощь приветствуется.

ответ

2

Возможно, вам захочется проверить, где потрачено время.

Там много инструментов, которые позволяют захватывать то, что определенный процесс делает, я называю только два из них:

Но проанализируйте отчеты, созданные этими инструментами, вам нужно довольно глубокое понимание. Если это не помогает временно отключить другие запущенные службы и программу пошагово (если вы хотите узнать, какая программа вызывает проблему) или отключить их все сразу. Глядя на всплески использования процессора, что TaskManager или Procexp by sysinternals может помочь также идентифицировать те компоненты, которые блокируют ваш процессор. Если ваш антивирус является причиной столкновения, что делает компиляцию настолько медленной, вы можете определить исключения, тогда антивирус не будет сканировать определенные программы или пути.

Так что, возможно, проще сначала попробовать процесс компиляции с отключенным антивирусным программным обеспечением или даже с чистого компакт-диска Windows Live.

+0

Отключение антивируса было хорошей идеей, так как я изменил его в течение этого периода, и он показал перспективность как для очистки, так и для запуска 'qmake'. К сожалению, когда дело дошло до здания, такая же медленность с этими паузами появилась, так что дело не в этом. – Momergil

+0

@Momergil Я согласен с использованием Process Monitor (как предлагается в этом ответе). Это позволяет вам легко контролировать активность процесса (это будет компилятор и любые другие связанные процессы). Не забудьте фильтровать вывод только на те процессы, которые имеют значение. –

+0

@ Хорошо, вы были правы в использовании этих приложений! :) Я использовал ProcMon и выяснил, что программное обеспечение от IBM, Raport Management Service, которое не является антивирусом, но работает совершенно так, постоянно вызывалось во время компиляции; как только я закончил, я смог выполнить работу в течение 2 минут! \ o/ Теперь ваш ответ на самом деле не отвечает на вопрос, так что вы можете немного изменить его, чтобы больше сосредоточиться на том, чтобы быть другим программным обеспечением причиной медленности? Тогда я приму свой ответ! И спасибо! – Momergil

Смежные вопросы