Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

ускорить работу компайлера

583  1 2 3 4 все
anly коренной житель21.03.13 20:13
anly
21.03.13 20:13 
Последний раз изменено 21.03.13 20:56 (anly)
я не уверен что тема относится более к форуму "Программировамие", чем к " Компьютер & Co". Однако я тему открыл только потому что именно программированием занимаюсь. (если модераторы не согласны, не возражаю, если перенесёте)
С полгода назад на работе получил новый комп с Вин7 и 8 core процессором: по сравнению с предыдущим ХР (не помню сколько core) стал летать...
Тогда я предусмотрительно замерил время полной компиляции проэкта - около 6 минут (старый комп раза в четыре дольше молотил).
Сейчас - в два раза больше (около 12 мин.)
Диски для Виндовса и для проэкта раздельные (логически. физически - один), каждый гдето 120 ГБ. Обое наполовину пустые.
Хотя занятый объем дисков (т.е. что занято файлами) конечно за пол года тоже увеличелся наверно раза в два.
Я уже пробовал бороться с тормозами: отключал разные службы - суперфетч, свопфайл вообще отключил, шифрование отключил, сжатие отключил, индексацию отключил. Но ощутимый результатов нет.
Также пробовал разные дефрагментаторы.
Вопросы такие:
1) стоит ли дефрагментировать диск проэкта, на котором каждой компиляцией создаётся/модифицируется куча файлов (напр. obj)
это может улучшить производительность если коприлирую я каждый день и не мало раз? (честно я не заметил улучшения, почти)
2)windows Leistungsinformationen показывает что полгода назад что сейчас одно и тоже:
Процессор - 7.6
Графика - 6.4
Память - 5.9
Диск - 5.9
Вот думаю если отключить сжатие это теоритически повысить или понизит производительность? ведь работа диска относительно медленная (без сжатия больше писать), а процессор относительно быстрый (т.е. быстро сжимает).
Хотя я пробовал - особой разницы не заметил. Но теоретически всё же интересно...
Главный вопрос: откуда взялись тормоза?
Проклят нарушающий межи ближнего своего (Втор.27:17)
#1 
AlexNek патриот21.03.13 20:45
AlexNek
NEW 21.03.13 20:45 
в ответ anly 21.03.13 20:13
Винда 64 или 32 бита?
Для 64 бит на СИ сервере мы получили значительное увеличение скорость компиляции только увеличив память до 8 гигов.
Попробуйте еще удалить все файлы из мусорной корзины. Когда там собирается солидное количество файлов могут быть придичные тормоза.
Компайлер то какой и что за язык?
#2 
anly коренной житель21.03.13 20:50
anly
NEW 21.03.13 20:50 
в ответ AlexNek 21.03.13 20:45
винда 64бит.
память 4гб.
мусор удаляю регулярно. ccleaner тоже запускаю.
Программирую только на VisualStidio2008.
Реже на VisualStudio2010- кстати работает ощутимо медленнее. Следующие версии проэкта будут на VS2010 так что надо чегото решать...
Проклят нарушающий межи ближнего своего (Втор.27:17)
#3 
Murr патриот21.03.13 21:02
Murr
NEW 21.03.13 21:02 
в ответ anly 21.03.13 20:13
Судя по ссылкам он обьектные файлы - пишешь Плюсах.
В плюсах, насколько помню, есть фишка с включаемыми файлами - добавляется чуток - время растет экспоненциально.
Борланд в свое время делал предкомпиляцию заголовочных файлов. Есть ли такое в ВС - не знаю - рой настройки.
Если нету, то можно экономить на компиляции путем включения цпп-файлов как и заголовочных... морока, но раза в три
ускорить получалось...
Так, надо сбегать недалеко - допишу потом...
#4 
anly коренной житель21.03.13 21:16
anly
NEW 21.03.13 21:16 
в ответ Murr 21.03.13 21:02, Последний раз изменено 21.03.13 21:32 (anly)
точно - в плюсах.
шарп (пользуюсь только дома, а на работе только для тестов) гораздо проворнее (впрочем больших проэктов на шарпе я не пробовал).
некоторые проэкты солюшена у нас используют boost. Так вот они компилируются ощутимо дольше.
Сам я не люблю boost. Как минимум там где используется у нас. Это похоже как на танке в булочную съездить что за углом, вместо велосипеда. Неоправданная сложность, где можно сделать просто. В callstack дебагера смотреть страшно: десяток вызовов вместо одного (если бы без boost).
Кстати boost - это тоже новое что появилось в нашем солюшене за пол года..
Проклят нарушающий межи ближнего своего (Втор.27:17)
#5 
AlexNek патриот21.03.13 21:31
AlexNek
NEW 21.03.13 21:31 
в ответ anly 21.03.13 20:50
8 весьма желательно для комфорной работы.
По шарпу отличий не заметил между 2008-2010
#6 
AlexNek патриот21.03.13 21:32
AlexNek
NEW 21.03.13 21:32 
в ответ anly 21.03.13 21:16
А как вас решена "проблема" с предкомпилированными заголовками?
#7 
anly коренной житель21.03.13 21:35
anly
NEW 21.03.13 21:35 
в ответ AlexNek 21.03.13 21:31
надо будет спросить о еще 4 гб...
Глядя на таскмэнэджер память расходуется под потолок. Иногда даже Виндовс предлагает чего нибудь закрыть, ввиду малости остатка свободной памяти.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#8 
Alex_MUC посетитель21.03.13 21:38
Alex_MUC
NEW 21.03.13 21:38 
в ответ anly 21.03.13 20:50
Странные вы вещи пишете
При 4 гигах Виндус должна сама загрузить их в эти 4 гига и к диску уже не обращаться.
"Was mich nicht umbringt, macht mich stärker."
#9 
anly коренной житель21.03.13 21:39
anly
NEW 21.03.13 21:39 
в ответ AlexNek 21.03.13 21:32
решена просто: сразу после stdafx.h стоить #pragma hdrstop.
После которого обычно еще куча инклудов.
Весь проэкт уже 20 лет как живёт, а порядок в нём похоже только я и навожу, беря на себя ответсвенность и риск.
boost включен в предкомпилированный заголовок, но видно он слишком большой.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#10 
AlexNek патриот21.03.13 21:40
AlexNek
NEW 21.03.13 21:40 
в ответ Alex_MUC 21.03.13 21:38
Это чисто теоретически рассуждения или есть документ от микрософта?
#11 
AlexNek патриот21.03.13 21:43
AlexNek
NEW 21.03.13 21:43 
в ответ anly 21.03.13 21:35
Это я бы сделал в первую очередь,тем более что память сейчас не такая уж и дорогая.
Второе, отмониторь нетворк. У нас сделали ссылку на сетевой диск для данных пользователя и студия любит этим пользоваться.
#12 
anly коренной житель21.03.13 21:44
anly
NEW 21.03.13 21:44 
в ответ Alex_MUC 21.03.13 21:38, Последний раз изменено 21.03.13 22:17 (anly)
В ответ на:
загрузить их в эти
пардон, не понял: "их" - это что?
Проэкт после успешной компиляции на диске занимает около 10 гб ( это включая исходники и obj и прочее)
на диске обычно имеется штук 5 версий проэкта (кроме других редко используемых проэктов). которые переодически удаляются, и заново грузятся/билдятся с соурсконтрола.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#13 
anly коренной житель21.03.13 21:46
anly
NEW 21.03.13 21:46 
в ответ AlexNek 21.03.13 21:43
В ответ на:
отмониторь нетворк
можно поподробнее? в сетях я не силён...
Проклят нарушающий межи ближнего своего (Втор.27:17)
#14 
Murr патриот21.03.13 22:00
Murr
NEW 21.03.13 22:00 
в ответ Murr 21.03.13 21:02
Часть вторая.
Хоть и не должно влиять, но мусор надо чистить. Чистить надо не только корзину, но и все временные файлы.
Где-то тут есть папочка с временными файлами: C:\Windows\Microsoft.NET\Framework\*
Часть тртья.
Проверить подмапленные, отсутствующие и субституционные диски. Все, которые не используются, а не используются почти всегда все - похерить.
Проверить сколько и чего прописано в патх. Почистить. Вплоть до того, что создать юзера только под разработку.
Часть четвертая.
посмотреть, куда пишутся обьектники и куда сбрасываются готовые либу и ехешники. По идее - обьектники должны писаться не на тотже физический диск где исходники и куда пойдут готовости.
Во времена когда винчестера на ПК были в диковикнку, Я пользовал такую штуку как RAM(virtual)-диск для обьетных и других файлов временного хранения - порядка на 3-4 по производительности. Как сейчас - не тестил.
#15 
Murr патриот21.03.13 22:04
Murr
NEW 21.03.13 22:04 
в ответ AlexNek 21.03.13 21:43
сделали ссылку на сетевой диск
------
Это - пустяк... У меня разок в путях оказалась ссылка на несуществующий дискетник... 40 минут вместо 15 секунд...
#16 
Murr патриот21.03.13 22:05
Murr
NEW 21.03.13 22:05 
в ответ anly 21.03.13 21:46
Просто убей все подмапленне диски. Какие будут нужны - сделай шорткаты...
#17 
anly коренной житель21.03.13 22:11
anly
NEW 21.03.13 22:11 
в ответ Murr 21.03.13 22:05, Последний раз изменено 21.03.13 22:25 (anly)
чувствую что здесь что-то существенное...
к сожалению я не знаю как их убить. И пока не понимаю о том ли идет речь что я подозреваю.
А именно: эксплорер показывает с десяток сетевых дисков, которыми я обычно не пользуюсь, а редко пользуюсь парочкой.
Как их убить и как оставить возможность ими пользоваться если приспичит?
А может есть способ сказать ВизуалСтудии не обращать на них внимание?
Проклят нарушающий межи ближнего своего (Втор.27:17)
#18 
Murr патриот21.03.13 22:36
Murr
NEW 21.03.13 22:36 
в ответ anly 21.03.13 22:11
не знаю как их убить.
------
Под 7й Я не делал.
В общем случае - map/unmap - для ресурса. Потряси своего админа на предмет что где не нужно.
может есть способ сказать
------
Насколько Я знаю - нету - оно на уровне сыстемы сканится...
с десяток сетевых дисков
-----
Ну каждый и проверяется на наличие нужных папок/файлов...
#19 
megabyte знакомое лицо22.03.13 09:24
megabyte
NEW 22.03.13 09:24 
в ответ anly 21.03.13 20:13
IMHO, минимум 8гб ОЗУ, проект на SSD.
Вот статья на эту тему.
> Диски для Виндовса и для проэкта раздельные (логически. физически - один), каждый гдето 120 ГБ. Обое наполовину пустые.
Неуверен, что перенос проекта на отдельный старорежимный HDD, значительно ускорит процесс. Из личного опыта, есть проект в сумме 9ГБ (исходники, объектники, библиотеки и пр.) на отдельном физическом HDD, х32 Win, 4 ядра ЦПУ, 4ГБ ОЗУ, много boost (сильно тормозит процесс компиляции). Компиляция занимает 25 мин.
> 1) стоит ли дефрагментировать диск проэкта, на котором каждой компиляцией создаётся/модифицируется куча файлов (напр. obj)
> это может улучшить производительность если коприлирую я каждый день и не мало раз? (честно я не заметил улучшения, почти)
Думаю, что значительной прибавки это не даст.
> Главный вопрос: откуда взялись тормоза?
Есть вероятность от boost'а.
#20 
megabyte знакомое лицо22.03.13 09:35
megabyte
NEW 22.03.13 09:35 
в ответ anly 21.03.13 20:13
> С полгода назад на работе получил новый комп с Вин7 и 8 core процессором
Кто производитель ЦПУ? Если AMD то есть смысл поменять на 4 ядра от Intel, т.к. скорость компиляции на 4х ядрах от Intel судя вот по этим тестам примерно, как на 8и от AMD. 4 параллельных процесса компиляции и линковки потребляют меньше ОЗУ (больше дисковый кеш) и HDD меньше дергает головками.
#21 
Nickrus постоялец22.03.13 11:29
NEW 22.03.13 11:29 
в ответ anly 21.03.13 20:13
Стоит ли дефрагментировать? Ну, один раз точно стоит, хуже от этого не будет.
Отключать ли сжатие? Блин, а нафига оно у вас включено? Это функция для папок, где пухлые логи скапливаются или подобных ситуаций, но не для работы с файлами, где нужна большая скорость.
Прекомпилированные заголовки обязательно включить, это резко ускоряет компиляцию.
Ну а вообще, панацея в данном случае - заменить диск на SSD либо в крайнем случае купить отдельный диск и подключить по быстрому интерфейсу - хотя бы USB 3.0. А если есть внешний выход на SATA - то напрямую отдельный sata-диск.
Может быть, создать отдельный том NTFS с маленьким размером кластера (который чуть больше, чем средний размер файла в проекте) и перекинуть всё туда. Но это спорный совет, там надо мерять. Может, поможет, а может - нет.
Что конкретно происходит во время помпиляции во всех подробностях можно смотреть через утилиту Process Monitor.
#22 
AlexNek патриот22.03.13 14:28
AlexNek
NEW 22.03.13 14:28 
в ответ anly 21.03.13 22:11
В ответ на:
А может есть способ сказать ВизуалСтудии не обращать на них внимание?

В настройках немного есть, но это не спасает польностью.
#23 
AlexNek патриот22.03.13 14:35
AlexNek
NEW 22.03.13 14:35 
в ответ anly 21.03.13 21:39
В ответ на:
решена просто: сразу после stdafx.h стоить #pragma hdrstop.
После которого обычно еще куча инклудов.

Я уже с плюсами долго не работал, но что то мне говорит, что это не совсем верно.
В ответ на:
The compiled state of any code that follows the pragma is not saved.

Мы делали настройки в проекте раньше.
#24 
AlexOtt местный житель22.03.13 19:16
AlexOtt
NEW 22.03.13 19:16 
в ответ megabyte 22.03.13 09:24
память сейчас стоит копейки - почему бы не поставить 16Гб? ну и SSD поможет, да...
#25 
anly коренной житель22.03.13 20:08
anly
NEW 22.03.13 20:08 
в ответ Murr 21.03.13 22:36
В ответ на:
Ну каждый и проверяется на наличие нужных папок/файлов...
отключил я диски. очень просто включаются/выключаются bat файлом типа: net use /delete Z:
На время компиляции вроде не повлияло. Однако повлияло на каждый запуск компиляции. Исчесзла несколькосекундная задержка при запуске компиляции. И эта задержка меня всегда раздражала. Видимо ВизуалСтудия не понятно зачем обращалась к сетевым дискам, к трём из которых доступ с моего компа заблокирован. Думаю эта проверка прав доступа и делает задержку.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#26 
anly коренной житель22.03.13 20:19
anly
NEW 22.03.13 20:19 
в ответ Nickrus 22.03.13 11:29
В ответ на:
панацея в данном случае - заменить диск на SSD
вроде у SSD есть проблема - "износ" (количество перезаписей ограничено).
Хоть Виндовс и старается вроде равномерно использовать SSD диск, но на компе где постоянно компиляция, файлы постоянно пишутся/стираются... Долго ли протянет?...
Проклят нарушающий межи ближнего своего (Втор.27:17)
#27 
megabyte знакомое лицо23.03.13 10:18
megabyte
NEW 23.03.13 10:18 
в ответ AlexOtt 22.03.13 19:16
В ответ на:
память сейчас стоит копейки - почему бы не поставить 16Гб? ну и SSD поможет, да...

Кашу маслом не испортить :)
> IMHO, минимум 8гб ОЗУ
#28 
vlad_s_69 знакомое лицо23.03.13 15:29
NEW 23.03.13 15:29 
в ответ megabyte 22.03.13 09:35
согласен у меня ССД у колеги обычный винт, у меня, примерно, в 2 раза быстрее компилирует
#29 
vlad_s_69 знакомое лицо23.03.13 16:48
NEW 23.03.13 16:48 
в ответ anly 22.03.13 20:19
старый ссд протянул 2 года, потом, просто 128 на 256 поменял
#30 
Wanderer_ прохожий23.03.13 17:55
NEW 23.03.13 17:55 
в ответ anly 21.03.13 20:13
Привет,
как уже тут писали расширение памяти должно помочь.
Сжатие для папок проекта на диске должно быть отключено. Места на диске ,как я понял, достаточно.
Плюс к этому можно попробовать увеличить размер Swap области на диске. Так как памяти мало, может быть и поможет.
Успехов,
Игорь
#31 
osdm завсегдатай23.03.13 20:11
NEW 23.03.13 20:11 
в ответ anly 22.03.13 20:19
Говорят, что SSD протянет в среднем пару лет. Но за 2 года это все равно окупится - не забывайте, что вы не просто теряете время ожидая компиляцию, вы еще отвлекаетесь на другие вещи и теряете концентрацию. А наверняка есть еще дебаг, тесты и прочее. Так что требуйте с начальства SSD, но при этом используйте распределенную систему контроля версий и регулярно делайте туда коммиты.
#32 
Murr патриот23.03.13 20:20
Murr
NEW 23.03.13 20:20 
в ответ Wanderer_ 23.03.13 17:55
Плюс к этому можно попробовать увеличить размер Сщап области на диске.
------
Уменьшить. Исключить своп как фактор...
#33 
nisnakomiz постоялец24.03.13 13:58
nisnakomiz
NEW 24.03.13 13:58 
в ответ anly 21.03.13 20:13
ssd жоский диск там всё разгонит толь вниматильн прочти порамтры диска
#34 
Wanderer_ прохожий24.03.13 13:58
NEW 24.03.13 13:58 
в ответ Murr 23.03.13 20:20
В ответ на:
Уменьшить. Исключить своп как фактор..

Swapping уменьшается путём увелечения оперативной памяти, а не уменьшением swapping-файла на диске
#35 
Murr патриот24.03.13 15:08
Murr
NEW 24.03.13 15:08 
в ответ Wanderer_ 24.03.13 13:58
Винда сама решает когда и что ей выгружать на диск... в обьеме доступного свопа.
Т.е. этот процесс юсером никак не контролируется. Увеличение обьема памяти проблему не решает - см. выше.
При отключения свопа - винда ничего не выгружает... но может "упасть", если не хватит памяти.
Так что - исключаем своп как таковой и радуемся увеличению производительности... пока не упадет...
#36 
Wanderer_ прохожий24.03.13 21:24
NEW 24.03.13 21:24 
в ответ Murr 24.03.13 15:08
В ответ на:
Увеличение обьема памяти проблему не решает - см. выше.

Где смотреть? О чём речь, о проблеме автора или о swappinge?
В ответ на:
Так что - исключаем своп как таковой и радуемся увеличению производительности... пока не упадет...

Здесь читаем:
answers.microsoft.com/en-us/windows/forum/windows_7-performance/can-i-dis...
lifehacker.com/5426041/understanding-the-windows-pagefile-and-why-you-sho...
#37 
Murr патриот24.03.13 21:56
Murr
NEW 24.03.13 21:56 
в ответ Wanderer_ 24.03.13 21:24
Где смотреть?
------
Там ВЫШЕ всего одна строка.
Здесь читаем:
------
Да, читаем ЕЩЕ раз... и может ЕЩЕ... до понимания того что написано.
#38 
Murr патриот24.03.13 21:58
Murr
NEW 24.03.13 21:58 
в ответ Murr 24.03.13 21:56
ЗЫ. Мой шеф несколько лет назад работал именно в такой конфигурации - много памяти и отключенный своп - система - летает... пока не упадет...
#39 
anly коренной житель24.03.13 22:21
anly
NEW 24.03.13 22:21 
в ответ Murr 24.03.13 21:58, Последний раз изменено 24.03.13 22:22 (anly)
когда запущены одновременно три ВизуалСтудии, память загружается под потолок черырёх гигов. И бывает Винда предупреждает о возможных проблемах и предлагает чего нибудь закрыть. Но вроде без падений.
Еще до того как я отключил своп, мне казалось, что Винда грузит в своп еще далеко не исчерпав оперативку. Т.е. диском торохтит, а глянешь в ТаскМанаджер - памяти еще половина. Я конечно не знаю точно что именно диском торохтело, но вроде без свопа торохтит поменьше.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#40 
Murr патриот24.03.13 22:29
Murr
NEW 24.03.13 22:29 
в ответ anly 24.03.13 22:21
мне казалось,
------
Тебе НЕ казалось - Винда выгружает то, что ей кажется не нужным...
#41 
Murr патриот24.03.13 22:32
Murr
NEW 24.03.13 22:32 
в ответ anly 24.03.13 22:21
Посмотри еще раз в сторону Виртуального Диска... там много не надо, но если сбрасывать только обьектники - будет не много и быстро...
#42 
anly коренной житель24.03.13 23:22
anly
NEW 24.03.13 23:22 
в ответ Murr 24.03.13 22:32
Есть проблемы:
вр-первых в Солюшине (вернее в каждом проэкте) указаны пути куда бросать объектники, поэтому если менять то поменяется у всех коллег - не заставлять же всех коллег витруальный диск делать...
во-вторых, если объектники будут виртуальны, то надо еще придумать выгрузку их на нормальный диск перед выключением Винды, и загрузку по включению. Иначе придётся делать полный билд солюшена. (хотя если оно будет считай мгновенно, то можно и полный).
в-третьих, надо слишком много памяти. Надо будет глянуть поточнее, но думаю что объектники более 1 гига займут на солюшен. А у нас их много (разные версии). Зачастую когда делаю коммит, хоть дэвелопил/дэбагил в одном солюшене, но мерджу и коммитю в нескольких солюшенах сразу(обычно в 6, бывает больше, бывает в 2 реже), ну и скомпилить хотя бы тоже весьма желательно(и обычно делаю) перед коммитом (еще лучше было бы протестировать, чего обычно не делаю).
Хотя надо будет подумать как это организовать...
Проклят нарушающий межи ближнего своего (Втор.27:17)
#43 
anly коренной житель24.03.13 23:45
anly
NEW 24.03.13 23:45 
в ответ Murr 24.03.13 22:32
Кстати, если сделать виртуальный диск, то соображает ли Винда, что это именно виртуальный диск, а значит нет необходимости кэшировать файлы в памяти?
На работе у меня Вин7. Она вроде сама может делать виртуальные диски (не надо сторонних утелит), значит - должна соображать, но мало ли...
Проклят нарушающий межи ближнего своего (Втор.27:17)
#44 
Murr патриот25.03.13 00:03
Murr
NEW 25.03.13 00:03 
в ответ anly 24.03.13 23:22
не заставлять же всех коллег
------
Конечно нет - для этого есть переменные среды... и BAT/CMD который их установит...
выгрузку их на нормальный диск перед выключением Винды
------
Зачем?
надо слишком много памяти.
------
Они тебе нафиг не нужы после линковки Ехе и/или Длл...
#45 
Murr патриот25.03.13 00:05
Murr
NEW 25.03.13 00:05 
в ответ anly 24.03.13 23:45
соображает ли Винда, что это именно виртуальный диск
------
Нет конечно... Это же Винда... для домохозяек...
#46 
anly коренной житель25.03.13 00:06
anly
NEW 25.03.13 00:06 
в ответ Murr 25.03.13 00:03, Последний раз изменено 25.03.13 00:07 (anly)
В ответ на:
Они тебе нафиг не нужы после линковки Ехе и/или Длл...
мне то не нужны, а вот ВисуалСтудии нужны. Без них она будет билдить весь солюшин, даже если были изменения только в одном цпп, и надо только один файл скомпилить и одну длл слинковать.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#47 
Murr патриот25.03.13 00:17
Murr
NEW 25.03.13 00:17 
в ответ anly 25.03.13 00:06
не пользовался, но знаю, что Маке может обойтись без компиляции всего солюшена - перестроит только нужный проект, используя компилятор и линкер от ВС... как будет по времени - не знаю.
Но это в любом случае самый дешевый вариант увеличения производительности... вторую существенную прибавку можно выжать загрузив на виртуальный диск стандартные хеадеры...
Сколько и чего надо - смотри сам - твои обьемы мне не известны...
#48 
anly коренной житель25.03.13 11:24
anly
NEW 25.03.13 11:24 
в ответ megabyte 22.03.13 09:35
Intel
Проклят нарушающий межи ближнего своего (Втор.27:17)
#49 
megabyte знакомое лицо25.03.13 11:57
megabyte
NEW 25.03.13 11:57 
в ответ anly 25.03.13 11:24
У этого процессора 4 физических ядра + Hyperthreading (т.е. виртуальных 8)... В общем случае прирост производительности компиляции, при включенной ф-ции, должен быть (пруф), но в твоем случае (4ГБ ОЗУ) думаю эффект обратный. Попробуй установить кол-во процессоров для компиляции в 4.
#50 
  Posmotrim постоялец25.03.13 13:12
Posmotrim
NEW 25.03.13 13:12 
в ответ anly 21.03.13 20:13, Последний раз изменено 25.03.13 13:18 (Posmotrim)
Ты уверен, что хочешь ускорить работу именно компилятора, а не всего процесса сборки? Сколько раз в день делаешь full rebuld? Я делаю максимум раз в месяц и то при выходе новой версии. А так мне хватает обычный build. Ну сделал я за день изменения в 10 файлах, которые разбросаны по разным проектам, так при компиляции будут только они и компилироваться + связи. Тратятся секунды. Естественно везде precompiled headers. Буст тоже везде. Возможно тебе стоит проверить зависимости проектов и включаемых файлов?
ЗЫ сделай простой пример: внеси изменения в один cpp и сделай build для солюшена. Открой output window и смотри что происходит. В идеале произойдёт компиляция одного cpp + линковка проекта. ЧТо происходит у тебя?
Добавил: в текущем проекте у меня 2 гб объектников генерируется. Не знаю много это или нет, привык на это не обращать внимание.
#51 
anly коренной житель25.03.13 21:00
anly
NEW 25.03.13 21:00 
в ответ megabyte 25.03.13 11:57
как только я получил комп, я замерил время билда с разным количестовом паралельных билдов в ВисуалСтудии:
1 build 12:13
2 build 7:20
3 build 6:43
4 build 6:08
8 build 6:00
Сейчас время раза в два дольше.
Но это, по моему мнению, потому что диск торохтит. Как только вижу что в output window медленновато обновляется инфа о скомпиленных файлах - гляну на диск - точно торохтит, светится не моргая. При этом загруженность процессора в ТаскМэнеджере почти никакая - 5-10 процентов. А памяти (если одна ВисуалСтудия работает) еще свободно от пол-гига до одного гигобайта.
Проклят нарушающий межи ближнего своего (Втор.27:17)
#52 
anly коренной житель25.03.13 21:14
anly
NEW 25.03.13 21:14 
в ответ Posmotrim 25.03.13 13:12
Я тоже не часто специально запускаю полный билд солюшена. Однако предпочитаю каждый день брать последнюю версию, и не редко коллеги чего поменяют, что билдится более обычного.
Проэкт у нас уже 20 лет пишется и бардак там необыкновенный. Ну т.е. много надо времени потратить чтобы в инклудах порядки навести. Я переодически навожу, если есть вдохновение, в тех файлах которые пришлось затронуть когда какую багу исправлю. Бывает почти все инклуды удалю, т.к. они просто там не нужны, а кто-то в прошлом долго не думая путём копу-пастэ их туда вставил.
Даже если только один cpp подправил, то линковать ВисуалСтудия будет не только текущий проэкт, но и все зависящие. Ну а линковка нагружает диск, а с диском у меня проблема...
Проклят нарушающий межи ближнего своего (Втор.27:17)
#53 
Wanderer_ прохожий25.03.13 22:53
NEW 25.03.13 22:53 
в ответ megabyte 25.03.13 11:57
В ответ на:
У этого процессора 4 физических ядра + Hyperthreading (т.е. виртуальных 8)... В общем случае прирост производительности компиляции, при включенной ф-ции, должен быть (пруф), но в твоем случае (4ГБ ОЗУ) думаю эффект обратный. Попробуй установить кол-во процессоров для компиляции в 4.

Может даже и помочь, хотя не отвечает на вопрос, почему время компиляции в два раза увеличилась. Вот здесь рассписано как можно это сделать:
blogs.msdn.com/b/visualstudio/archive/2010/03/08/tuning-c-build-paralleli...
#54 
Wanderer_ прохожий25.03.13 23:25
NEW 25.03.13 23:25 
в ответ Murr 24.03.13 21:56
В ответ на:
Да, читаем ЕЩЕ раз... и может ЕЩЕ... до понимания того что написано.

Вот с этим я полностью согласен.
Я приведу здесь пару строк из текста. Несоответствия выделены жирным шрифтом и подчёркнуты
В ответ на:
Винда сама решает когда и что ей выгружать на диск... в обьеме доступного свопа.
Т.е. этот процесс юсером никак не контролируется. Увеличение обьема памяти проблему не решает - см. выше.

А теперь выдержка из текста:
If you really want to speed up your PC, your best options are these:
- Upgrade your RAM.
-Clean off the crapware—the biggest cause of system slowdown.
-Switch to Microsoft Security Essentials and stop paying for bloated Windows security packages.
-Windows 7 handles multi-tasking much better than Windows XP did.
В ответ на:
Так что - исключаем своп как таковой и радуемся увеличению производительности... пока не упадет..

выдержка из текста:
The problem with this logic is that it only really affects a single scenario: switching to an open application that you haven't used in a while won't ever grind the hard drive when the pagefile is disabled. It's not going to actually make your PC faster, since Windows will never page the application you are currently working with anyway.
#55 
megabyte знакомое лицо26.03.13 09:04
megabyte
NEW 26.03.13 09:04 
в ответ anly 25.03.13 21:00
В ответ на:
4 build 6:08
8 build 6:00
Сейчас время раза в два дольше.
Но это, по моему мнению, потому что диск торохтит.

На скольких процессорах время компиляции в два раза больше? на 8? на 4? на всех? если только на 8, то как долго комилиться на 4 ЦПУ сейчас?
#56 
Murr патриот26.03.13 10:25
Murr
NEW 26.03.13 10:25 
в ответ Wanderer_ 25.03.13 23:25
выдержка из текста:
------
Читаем выдержку после запятой, затем снова читаем первую строку.
Если не понятно - Винда "не будет выгружать" активно работающую задачу.
Но она будет выгружать задачи, которые она считает не активными (10-15 мс "бездействия", +/-). И именно во время работы активной, требующей ресурсов, задачи.
Повлиять на это юзер не может, но может исключить данную операцию.
#57 
Wanderer_ прохожий29.03.13 11:54
NEW 29.03.13 11:54 
в ответ Murr 26.03.13 10:25
В ответ на:
Если не понятно - Винда "не будет выгружать" активно работающую задачу.
Но она будет выгружать задачи, которые она считает не активными (10-15 мс "бездействия", +/-). И именно во время работы активной, требующей ресурсов, задачи.
Повлиять на это юзер не может, но может исключить данную операцию.

Так и я про тоже самое. Имеем два случая:
1) Для процесса имется достаточно оперативной памяти. ОС выделяет память и при этом не происходить никакой выгрузки страниц памяти. Выполнения процесса происходит одиноково как с включенным свопингом так и с отключенным.
2) Загружается-выполняется процесс для которого недостаточно свободной оперативной памяти. При вкюченном свопинге происходит выгрузка страниц памяти неактивных процессов. При выключенном свопинге система просто падает.
Где нам радоваться увеличению производительности???
В ответ на:
Да, читаем ЕЩЕ раз... и может ЕЩЕ... до понимания того что написано.

И какой можно сделать вывод после прочтения?
Отключение свопинга не рекомендуется.
#58 
Wanderer_ прохожий29.03.13 11:58
NEW 29.03.13 11:58 
в ответ anly 21.03.13 20:13
Интересно, у Анатолия(anly) что- нибудь получилось или нет. Ждём отчёта.
Успехов.

#59 
Murr патриот29.03.13 12:30
Murr
NEW 29.03.13 12:30 
в ответ Wanderer_ 29.03.13 11:54
Где нам радоваться увеличению производительности???
-----
Там, где кончается понимание.
...при этом не происходить никакой выгрузки страниц памяти.
-----
Именно здесь ты не понимаешь. Винда БУДЕТ выгружать в своп даже при наличии достаточного количества свободной памяти.
Отключение свопинга не рекомендуется.
-----
Да. Именно - не рекомендуется. Т.е. за исключением случаев, когда понимаешь что именно делаешь...
#60 
Wanderer_ прохожий02.04.13 23:17
NEW 02.04.13 23:17 
в ответ Murr 29.03.13 12:30
В ответ на:
Винда БУДЕТ выгружать в своп даже при наличии достаточного количества свободной памяти.

Ссылку в студию где про это написано.
#61 
1 2 3 4 все