Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MSVC2008. Распаралелить процесс сборки 
V
    Опции темы
niXman
Дата 21.10.2009, 09:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: 0
Всего: 0



Здравствуйте.
Подскажите, можно ли заставить сию IDE собирать проект параллельно в несколько потоков?
При сборке проекта, заметил, что компилятор использует только одно ядро, а хотелось бы чтоб все. Ну чтоб быстрее процесс шел.
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
Lazin
Дата 21.10.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Tools -> Options -> Projects and Solutions -> Build and Run -> maximum number of parallel project builds

правда для этого, нужно что-бы твой sloutions содержал несколько проектов
PM MAIL Skype GTalk   Вверх
niXman
Дата 21.10.2009, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: 0
Всего: 0



Цитата(Lazin @  21.10.2009,  07:18 Найти цитируемый пост)
правда для этого, нужно что-бы твой sloutions содержал несколько проектов 

Так проект всего один, но большой, долго собирается, а процессор не используется на полную.
Я предполагал что есть возможность настроить IDE так, чтоб make распределял компиляцию.

Добавлено через 1 минуту и 21 секунду
Или при сборке из IDE make не используется?
В общем каким способом можно реализовать задуманное?
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
Alek86
Дата 21.10.2009, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



вопрос в тему
в 2005 если есть 3 проекта (2 lib и 1 exe), причем Lib2 использует функции из Lib1, а Exe - функции из Lib2, то:

1. если поставить в Exe зависимости на Lib1 и Lib2, то обе либы собираются параллельно
2. если установить зависимость Exe от Lib2, а у Lib2 зависимость от Lib1, то либы собираются строго последовательно
(второй способ предпочтительней (если появится Exe2, то у нее нужно зависимость только от Lib2 делать))

никто не знает, почему во втором способе последовательно? Это ж либы, их, вроде, можно и параллелить.

Добавлено через 1 минуту и 4 секунды
Цитата(niXman @  21.10.2009,  09:34 Найти цитируемый пост)
В общем каким способом можно реализовать задуманное?

как вариант разбить проект на главный и несколько либ
либы будут параллельно компилиться


--------------------
user posted image    user posted image
PM MAIL   Вверх
niXman
Дата 21.10.2009, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: 0
Всего: 0



Цитата(Alek86 @  21.10.2009,  07:36 Найти цитируемый пост)
Это ж либы, их, вроде, можно и параллелить.

Ну так не указывай зависимость либы от либы.
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
Alek86
Дата 21.10.2009, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(niXman @  21.10.2009,  09:43 Найти цитируемый пост)
Ну так не указывай зависимость либы от либы.

вопрос не в этом, а почему параллелит
сори, что в твоей теме, просто вспомнилось, да и вопрос примерно туда же


--------------------
user posted image    user posted image
PM MAIL   Вверх
niXman
Дата 21.10.2009, 09:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: 0
Всего: 0



Цитата(Alek86 @  21.10.2009,  07:48 Найти цитируемый пост)
вопрос не в этом, а почему параллелит

Не знаю. Я меньше недели пользую сию IDE smile 

По теме: Может использовать другую систему сборки? Кто-то знает, cmake позволяет такое реализовать, и возможно ли его привязать к этой IDE?

Это сообщение отредактировал(а) niXman - 21.10.2009, 09:52
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
Lazin
Дата 21.10.2009, 09:52 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(niXman @  21.10.2009,  09:34 Найти цитируемый пост)
Так проект всего один, но большой, долго собирается, а процессор не используется на полную.
Я предполагал что есть возможность настроить IDE так, чтоб make распределял компиляцию.

при сборке из IDE make не используется, да и вообще, в поставку VC++ 2008 такое приложение не входит smile 
есть nmake, но он то-же не используется, для сборки проекта используется vcbuild.exe
и кстати, ты сам ответил на свой вопрос, раз проект большой и долго собирается, то его нужно разбить на части
возможно так-же использовать precompiled headers

Добавлено через 4 минуты и 14 секунд
Цитата(Alek86 @  21.10.2009,  09:36 Найти цитируемый пост)
вопрос в тему
в 2005 если есть 3 проекта (2 lib и 1 exe), причем Lib2 использует функции из Lib1, а Exe - функции из Lib2, то:

1. если поставить в Exe зависимости на Lib1 и Lib2, то обе либы собираются параллельно
2. если установить зависимость Exe от Lib2, а у Lib2 зависимость от Lib1, то либы собираются строго последовательно
(второй способ предпочтительней (если появится Exe2, то у нее нужно зависимость только от Lib2 делать))

никто не знает, почему во втором способе последовательно? Это ж либы, их, вроде, можно и параллелить.


ну это-же очевидно, если ты установил зависимость target2 от target1, то студия сначала соберет target1, а затем target2, так как перед сборкой target2 нужно собрать все, от чего он зависит, что-бы что-то собиралось параллельно, нужно что-бы зависимости между проектами имели форму дерева
PM MAIL Skype GTalk   Вверх
Alek86
Дата 21.10.2009, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(Lazin @  21.10.2009,  09:52 Найти цитируемый пост)
если ты установил зависимость target2 от target1, то студия сначала соберет target1, а затем target2, так как перед сборкой target2

то есть зависимость - это тупейший инструмент, что за чем компилить, не смотря на то, что либы можно и распараллелить?


--------------------
user posted image    user posted image
PM MAIL   Вверх
Lazin
Дата 21.10.2009, 10:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(niXman @  21.10.2009,  09:52 Найти цитируемый пост)
По теме: Может использовать другую систему сборки? Кто-то знает, cmake позволяет такое реализовать, и возможно ли его привязать к этой IDE?

cmake есть смысл использовать, только если ты будешь собирать свой проект на разных платформах.
Но проблему это не решит, так как cmake создает решение для visual studio, после чего ты открываешь его и собираешь так-же как ты делаешь это сейчас.
PM MAIL Skype GTalk   Вверх
niXman
Дата 21.10.2009, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: 0
Всего: 0



Цитата(Lazin @  21.10.2009,  07:52 Найти цитируемый пост)
раз проект большой и долго собирается, то его нужно разбить на части

Не хотелось бы...

Цитата(Lazin @  21.10.2009,  07:52 Найти цитируемый пост)
возможно так-же использовать precompiled headers

Сейчас ознакомлюсь.

А по поводу:
Цитата(niXman @  21.10.2009,  07:52 Найти цитируемый пост)
Кто-то знает, cmake позволяет такое реализовать, и возможно ли его привязать к этой IDE?

Можете прокомментировать?
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
niXman
Дата 21.10.2009, 10:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 211
Регистрация: 4.7.2009

Репутация: 0
Всего: 0



Уже прокомментировали. Спасибо. Тема закрыта.
--------------------
if ( !c++ ) {   *power--;   this->wussiness += 10;}
PM MAIL   Вверх
Lazin
Дата 21.10.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alek86 @  21.10.2009,  10:00 Найти цитируемый пост)
то есть зависимость - это тупейший инструмент, что за чем компилить, не смотря на то, что либы можно и распараллелить?

почему тупейший? если target1 - стат. библиотека, а target2 - приложение, то добавив зависимость между проектами, ты избавишь себя от необходимости вручную подключать библиотеку target1.lib smile 
к тому-же, откуда системе сборки знать, что библиотеки можно собрать независимо друг от друга, если это конечно возможно?
PM MAIL Skype GTalk   Вверх
Alek86
Дата 21.10.2009, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1299
Регистрация: 30.1.2007
Где: Киев

Репутация: 21
Всего: 25



Цитата(Lazin @  21.10.2009,  10:04 Найти цитируемый пост)
что библиотеки можно собрать независимо друг от друга, если это конечно возможно?

можешь привести пример, когда библиотеки нельзя собрать независимо друг от друга?

Это сообщение отредактировал(а) Alek86 - 21.10.2009, 10:09


--------------------
user posted image    user posted image
PM MAIL   Вверх
Lazin
Дата 21.10.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



Цитата(Alek86 @  21.10.2009,  10:08 Найти цитируемый пост)
можешь привести пример, когда библиотеки нельзя собрать независимо друг от друга?

если одна использует функции другой
PM MAIL Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1113 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.