Как я могу ускорить компиляцию на C ++?

Even a simple cout << "Hello World!"; takes about 25 seconds to compile for me in Visual C++. Same thing in Code::Blocks and every other IDE I've tried. It used to be near instantly. I have no idea why its taking so long.

И это не моя скорость процессора. У меня i7 2600k на 3,7 ГГц, так что это не должно быть проблемой. У меня также есть 8 ГБ оперативной памяти.

Я понятия не имею, почему это так долго. Может ли кто-нибудь порекомендовать мне решение, пожалуйста?

Спасибо!

2
nl ja de
@AndrewP: Не могли бы вы запустить Process Monitor и выяснить, какой процесс делает тяжелый дисковый ввод-вывод ? Я думаю, что ваш диск может быть сильно использован (возможно, программное обеспечение для резервного копирования?).
добавлено автор Mehrdad, источник
@AndrewP: Не могли бы вы запустить Process Monitor и выяснить, какой процесс делает тяжелый дисковый ввод-вывод ? Я думаю, что ваш диск может быть сильно использован (возможно, программное обеспечение для резервного копирования?).
добавлено автор Mehrdad, источник
@AndrewP: Ладно, это просто странно ... На самом деле я понятия не имею. >. <�Я дам вам знать, есть ли у меня какие-то другие идеи.
добавлено автор Mehrdad, источник
@AndrewP: Ладно, это просто странно ... На самом деле я понятия не имею. >. <�Я дам вам знать, есть ли у меня какие-то другие идеи.
добавлено автор Mehrdad, источник
Вы используете Boost? (Или аналогичный шаблон-тяжелый код?)
добавлено автор Mehrdad, источник
Вы используете Boost? (Или аналогичный шаблон-тяжелый код?)
добавлено автор Mehrdad, источник
@AndrewP: что произойдет, если вы попытаетесь скомпилировать int main (void) {return 0; } , без заголовков или чего-нибудь еще?
добавлено автор Mehrdad, источник
@AndrewP: Все, что я могу придумать, это то, что ваш процессор каким-то образом массово отставал ... не так ли? Кроме того, с i7 и 8 ГБ оперативной памяти вы не должны видеть, что это происходит ... есть много дискового ввода-вывода?
добавлено автор Mehrdad, источник
@AndrewP: Все, что я могу придумать, это то, что ваш процессор каким-то образом массово отставал ... не так ли? Кроме того, с i7 и 8 ГБ оперативной памяти вы не должны видеть, что это происходит ... есть много дискового ввода-вывода?
добавлено автор Mehrdad, источник
@AndrewP: что произойдет, если вы попытаетесь скомпилировать int main (void) {return 0; } , без заголовков или чего-нибудь еще?
добавлено автор Mehrdad, источник
@AndrewP: Weird ... можете попробовать запустить Process Explorer и опубликовать снимок экрана View -> Информация о системе-> вкладка «Сводка» после запуска программы, ожидающая 30 секунд, а затем нажмите «Скомпилировать» и дождаться 30 секунд в компиляции, прежде чем делать снимок экрана? Это поможет нам понять нагрузку на систему.
добавлено автор Mehrdad, источник
Было бы неплохо, если бы вы могли показать весь этот примерный код, который так долго компилируется. Без какого-либо реального ввода я склонен предположить, что вы включаете заголовки, которые вам не нужны. (У меня никогда не было «привет мир», чтобы скомпилировать более 5 секунд.)
добавлено автор cHao, источник
@MrCoDeXeR: В VS? Возможно нет. :)
добавлено автор cHao, источник
@MrCoDeXeR: В VS? Возможно нет. :)
добавлено автор cHao, источник
@AndrewP: Это не скомпилируется. cout не существует, если вы просто включили . Вы должны сказать std :: cout или , используя std :: cout; или , используя пространство имен std; или что-то подобное, или включить а не .
добавлено автор cHao, источник
@AndrewP: Это не скомпилируется. cout не существует, если вы просто включили . Вы должны сказать std :: cout или , используя std :: cout; или , используя пространство имен std; или что-то подобное, или включить а не .
добавлено автор cHao, источник
Было бы неплохо, если бы вы могли показать весь этот примерный код, который так долго компилируется. Без какого-либо реального ввода я склонен предположить, что вы включаете заголовки, которые вам не нужны. (У меня никогда не было «привет мир», чтобы скомпилировать более 5 секунд.)
добавлено автор cHao, источник
Когда вы компилируете это выглядит так? $ g ++ -Wall hello.cc -o привет
добавлено автор Codexer, источник
Когда вы компилируете это выглядит так? $ g ++ -Wall hello.cc -o привет
добавлено автор Codexer, источник
@Chao правильно! Командная строка lol ...
добавлено автор Codexer, источник
@Chao правильно! Командная строка lol ...
добавлено автор Codexer, источник
@CHao меня либо!
добавлено автор Codexer, источник
@CHao меня либо!
добавлено автор Codexer, источник
Вы пробовали предварительно скомпилированные заголовки?
добавлено автор Codexer, источник
Это помогает увидеть вашу командную строку для компиляции и компоновки. Go "-> c/c ++ -> командной строки" и "свойства конфигурации-> linker-> command line" , чтобы найти его.
добавлено автор WiSaGaN, источник
Это помогает увидеть вашу командную строку для компиляции и компоновки. Go "-> c/c ++ -> командной строки" и "свойства конфигурации-> linker-> command line" , чтобы найти его.
добавлено автор WiSaGaN, источник
добавлено автор AndrewP, источник
Вся программа в буквальном смысле включает iostream, а затем основной метод с cout внутри него. Больше ничего.
добавлено автор AndrewP, источник
@Mehrdad Я так не думаю. Все остальное работает совершенно гладко. Сам VC ++ является гладким. Я могу играть на этом ПК с отличным FPS, но всякий раз, когда я пытаюсь скомпилировать C или C ++, он замедляется. Я собрал массивные Java-проекты за меньшее время, чем требуется, чтобы скомпилировать простой Hello World на C ++.
добавлено автор AndrewP, источник
@Mehrdad Я так не думаю. Все остальное работает совершенно гладко. Сам VC ++ является гладким. Я могу играть на этом ПК с отличным FPS, но всякий раз, когда я пытаюсь скомпилировать C или C ++, он замедляется. Я собрал массивные Java-проекты за меньшее время, чем требуется, чтобы скомпилировать простой Hello World на C ++.
добавлено автор AndrewP, источник
@Chao Это то, что я имею в виду. std :: cout << «Hello World!»;
добавлено автор AndrewP, источник
добавлено автор AndrewP, источник
добавлено автор AndrewP, источник
добавлено автор AndrewP, источник
@Chao Это то, что я имею в виду. std :: cout << «Hello World!»;
добавлено автор AndrewP, источник
@Mehrdad Что еще более странно, так это недавнее появление. Несколько месяцев назад все работало нормально. Я понятия не имею, что я изменил или испортил. Я могу прибегнуть только к заводской установке Windows.
добавлено автор AndrewP, источник
@Mehrdad Что еще более странно, так это недавнее появление. Несколько месяцев назад все работало нормально. Я понятия не имею, что я изменил или испортил. Я могу прибегнуть только к заводской установке Windows.
добавлено автор AndrewP, источник
@Mehrdad Compiling занял 40 секунд. Связывание заняло 25 секунд.
добавлено автор AndrewP, источник
@Mehrdad Compiling занял 40 секунд. Связывание заняло 25 секунд.
добавлено автор AndrewP, источник
@Mehrdad. Наиболее распространенными программами в этой программе, которые вы мне дали, были svchost.exe и Skype.
добавлено автор AndrewP, источник
@Mehrdad. Наиболее распространенными программами в этой программе, которые вы мне дали, были svchost.exe и Skype.
добавлено автор AndrewP, источник
для компоновщика: pastebin.com/x4wDEab2
добавлено автор AndrewP, источник
для компоновщика: pastebin.com/x4wDEab2
добавлено автор AndrewP, источник
@WiSaGan Вот что он говорит для c/c ++: "/ ZI/nologo/W3/WX-/Od/Oy-/D" _MBCS "/ Gm/EHsc/RTC1/GS/fp: exact/Zc: wchar_t/Zc: forScope /Fp"Debug\asdf.pch "/ Fa" Debug \ "/ Fo" Debug \ "/Fd"Debug\vc100.pdb"/Gd/analysis-/errorReport: queue "
добавлено автор AndrewP, источник
@WiSaGan Вот что он говорит для c/c ++: "/ ZI/nologo/W3/WX-/Od/Oy-/D" _MBCS "/ Gm/EHsc/RTC1/GS/fp: exact/Zc: wchar_t/Zc: forScope /Fp"Debug\asdf.pch "/ Fa" Debug \ "/ Fo" Debug \ "/Fd"Debug\vc100.pdb"/Gd/analysis-/errorReport: queue "
добавлено автор AndrewP, источник

2 ответы

Компиляция очень привязана к вводу-выводу. Даже самый быстрый Core i7 по-прежнему будет компилироваться медленно, если у вас старый жесткий диск.

Дефрагментируйте свой диск, убедитесь, что у вас есть не менее 10-20% свободного места на диске или получите более быстрый жесткий диск. Для этого потрясающие SSD.

В качестве эталона моя retina macbook pro (VS2010 в виртуальной машине) может скомпилировать более 100 000 проектов линий (которые в течение нескольких минут будут использовать шаблоны и многое другое, например boost).

Since you have lots of memory, you might get yourself a RAM disk and try that. Don't forget to relocate your system headers & libraries to the ram disk.

0
добавлено
@AndrewP: Нет.
добавлено автор Mehrdad, источник
@AndrewP - также исключить источник, библиотеки и заголовки из функции сканирования вашего вируса. Visual Studio любит открывать файлы снова и снова, и AV-программы будут значительно снижать производительность.
добавлено автор Seth, источник
@Seth У меня нет антивируса. Все, что у меня есть, это MalwareBytes. На самом деле у меня может быть демо McAfee, что я думаю об этом.
добавлено автор AndrewP, источник
У меня есть жесткий диск Iron Caviar Black 1TB с оставшимся 600 ГБ. Должно быть, это проблема?
добавлено автор AndrewP, источник

Компиляция очень привязана к вводу-выводу. Даже самый быстрый Core i7 по-прежнему будет компилироваться медленно, если у вас старый жесткий диск.

Дефрагментируйте свой диск, убедитесь, что у вас есть не менее 10-20% свободного места на диске или получите более быстрый жесткий диск. Для этого потрясающие SSD.

В качестве эталона моя retina macbook pro (VS2010 в виртуальной машине) может скомпилировать более 100 000 проектов линий (которые в течение нескольких минут будут использовать шаблоны и многое другое, например boost).

Since you have lots of memory, you might get yourself a RAM disk and try that. Don't forget to relocate your system headers & libraries to the ram disk.

0
добавлено
@AndrewP: Нет.
добавлено автор Mehrdad, источник
@AndrewP - также исключить источник, библиотеки и заголовки из функции сканирования вашего вируса. Visual Studio любит открывать файлы снова и снова, и AV-программы будут значительно снижать производительность.
добавлено автор Seth, источник
@Seth У меня нет антивируса. Все, что у меня есть, это MalwareBytes. На самом деле у меня может быть демо McAfee, что я думаю об этом.
добавлено автор AndrewP, источник
У меня есть жесткий диск Iron Caviar Black 1TB с оставшимся 600 ГБ. Должно быть, это проблема?
добавлено автор AndrewP, источник
pro.cxx
pro.cxx
3 049 участник(ов)

C/C++ chat 0. Простые вопросы, лабы и о IDE — в чат новичков @supapro 1. Не хамим, не переходим на личности, не вбрасываем утверждения без доказательств 2. No Ads, offtop, flood Объявления о вакансиях и евенты - в лс @AlexFails https://t.me/ProCxx/259155

supapro.cxx
supapro.cxx
1 925 участник(ов)

Чат для тех, кто немного знает C++, простые вопросы по реализации, синтаксису и ide – сюда, а для другого есть: /Главный чат по серьезным вопросам — @ProCxx /Чат по обсуждению всего — @fludpac

C++ Russia
C++ Russia
384 участник(ов)

Сообщество разработчиков C++ в Telegram.

cxx.Дискуссионная
cxx.Дискуссионная
298 участник(ов)

это не двач, общайтесь вежливо; разговор на почти любые темы; Не согласны с баном? В лс @AlexFails, @ivario

C++ для маленьких и тупых
C++ для маленьких и тупых
105 участник(ов)

Лоу левел (по среднему IQ участников) чатик ExtremeCode @extremecode Флудилка @extremecode_rest