Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AVR Studio + WinAVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
gte
AVR Studio + WinAVR, вся папка проекта 240 килобайт, компиляция несколько секунд (полная до 10)
Загрузка на процессора минимальна (i7, памяти максимум, 32 разрядная ЧЗ).

Я так понимаю, время занимают дисковые операции. Никто не разбирался что подправить?
ARV
по-вашему, это много?! blink.gif
ReAl
Цитата(gte @ Sep 21 2011, 16:21) *
Я так понимаю, время занимают дисковые операции. Никто не разбирался что подправить?
Винчестер. Допатчить до SSD.
gte
Цитата(ReAl @ Sep 21 2011, 23:39) *
Винчестер. Допатчить до SSD.

Да, уже подумываю. Посмотрел, так до GCC дело дошло только почти через 2 секунды.
Получается сильно не сбалансированный комп.
Цитата(ARV @ Sep 21 2011, 18:26) *
по-вашему, это много?! blink.gif

Да.
ReAl
Цитата(gte @ Sep 22 2011, 07:39) *
Посмотрел, так до GCC дело дошло только почти через 2 секунды.
Это при первом запуске компиляции или при последующих перекомпиляциях?
По нормальному при достаточной памяти после первого запуска все gcc-шные бинарники должны уже в дисковых кешах в ОЗУ лежать и последующие перекомпиляции запускаться быстрее.

Еще, говорят, RAM-диск можно устроить. Это урежет основную память, но тогда то таки уже диск, а не кеши.
Не по делу сбрасываться и заново лезть на винт не будет. Перед началом работы (при загрузке компа запускать) копировать туда компилятор, настроить пути (PATH либо в makefile). Разобраться, где gcc складывает временные файлы, попробовать перенаправить туда же.
Было бы желание побороться, а противника найти можно.

p.s. make -j 4 или даже -j 8 не пробовали? хотя, если загрузка на процессор малая, это врядли силльно поможет

Вот только что попробовал (не -j, а последовательные запуски)
avreal (около 400 кб исходников)
Core2 Duo из младших - E4600 @ 2.4 ГГц. 1G RAM DDR2-800
ubuntu 64 bit

> time make -j 4

Полная перекомпиляция (просто вручную начисто вытирался каталог с объектниками и результат компиляции) первый запуск и последующие как раз около двух секунд разницы.
4.8 секунды и 2.7.

Таки 10 секунд долговато... Хотя мне те 5 секунд казались десятью, пока time не сказал, что их 4.8 :-)
Может, это сама студия тормозит где-то (на перехвате вывода, то-сё)?
Попробуйте отдельным запуском make.
gte
Цитата(ReAl @ Sep 22 2011, 10:09) *
Это при первом запуске компиляции или при последующих перекомпиляциях?
По нормальному при достаточной памяти после первого запуска все gcc-шные бинарники должны уже в дисковых кешах в ОЗУ лежать и последующие перекомпиляции запускаться быстрее.
===
Полная перекомпиляция (просто вручную начисто вытирался каталог с объектниками и результат компиляции) первый запуск и последующие как раз около двух секунд разницы.
4.8 секунды и 2.7.


Все же около 5 секунд при повторной полной перекомпиляции, бывает меньше.

У меня озу 12 Гиг, но винда 32 разряда. РАМ диск есть (в комплекте с одним пакетом), но отъедает от рабочих 3 гигов.
Я посмотрел что винда делает. Тот make перед тем как запустить по всем путям поищет :-).
Я два вырезки приведу
Код
16:19:08,2992286    AVRStudio.exe    3912    QueryOpen    D:\Program Files\Atmel\AVR Tools\AvrStudio4\make.exe    NAME NOT FOUND    
16:19:08,2993668    AVRStudio.exe    3912    QueryOpen    E:\Disk_D\Project_2011\VIDEO\sofr\make.exe    NAME NOT FOUND    
16:19:08,2994962    AVRStudio.exe    3912    QueryOpen    D:\WINDOWS\system32\make.exe    NAME NOT FOUND    
16:19:08,2996333    AVRStudio.exe    3912    QueryOpen    D:\WINDOWS\system\make.exe    NAME NOT FOUND    
16:19:08,2997327    AVRStudio.exe    3912    QueryOpen    D:\WINDOWS\make.exe    NAME NOT FOUND    
16:19:08,2998889    AVRStudio.exe    3912    QueryOpen    D:\WinAVR\utils\bin\make.exe    SUCCESS    CreationTime: 21.12.2007
16:19:08,3000374    AVRStudio.exe    3912    QueryOpen    D:\WinAVR\utils\bin\make.exe    SUCCESS    CreationTime: 21.12.2007
16:19:08,3001897    AVRStudio.exe    3912    QueryOpen    D:\WinAVR\utils\bin\make.exe    SUCCESS    CreationTime: 21.12.2007
16:19:08,3003252    AVRStudio.exe    3912    QueryOpen    D:\Program Files\Atmel\AVR Tools\AvrStudio4\make.exe    NAME NOT FOUND    
16:19:08,3004530    AVRStudio.exe    3912    QueryOpen    E:\Disk_D\Project_2011\VIDEO\sofr\make.exe    NAME NOT FOUND    
16:19:08,3005805    AVRStudio.exe    3912    QueryOpen    D:\WINDOWS\system32\make.exe    NAME NOT FOUND    
16:19:08,3007039    AVRStudio.exe    3912    QueryOpen    D:\WINDOWS\system\make.exe    NAME NOT FOUND    
16:19:08,3008033    AVRStudio.exe    3912    QueryOpen    D:\WINDOWS\make.exe    NAME NOT FOUND    
16:19:08,3009506    AVRStudio.exe    3912    QueryOpen    D:\WinAVR\utils\bin\make.exe    SUCCESS


И такое

Код
16:19:08,3224429    make.exe    2220    QueryOpen    D:\WinAVR\utils\bin\sh.exe.exe    NAME NOT FOUND    
16:19:08,3225852    make.exe    2220    CreateFile    D:\WinAVR\utils\bin\sh.exe.exe    NAME NOT FOUND    
16:19:08,3227226    make.exe    2220    QueryOpen    D:\WinAVR\utils\bin\sh.exe.cmd    NAME NOT FOUND    
16:19:08,3228508    make.exe    2220    CreateFile    D:\WinAVR\utils\bin\sh.exe.cmd    NAME NOT FOUND    
16:19:08,3229810    make.exe    2220    QueryOpen    D:\WinAVR\utils\bin\sh.exe.bat    NAME NOT FOUND    
16:19:08,3231062    make.exe    2220    CreateFile    D:\WinAVR\utils\bin\sh.exe.bat    NAME NOT FOUND    
16:19:08,3232622    make.exe    2220    QueryOpen    D:\WinAVR\utils\bin\sh.exe    SUCCESS    
16:19:08,3234145    make.exe    2220    CreateFile    D:\WinAVR\utils\bin\sh.exe    SUCCESS    
16:19:08,3235585    make.exe    2220    QueryBasicInformationFile    D:\WinAVR\utils\bin\sh.exe    SUCCESS    
16:19:08,3236777    make.exe    2220    ReadFile    D:\WinAVR\utils\bin\sh.exe    SUCCESS    Offset: 0, Length: 255
16:19:08,3238098    make.exe    2220    CloseFile    D:\WinAVR\utils\bin\sh.exe    SUCCESS


Видимо, настраивать надо.
ReAl
А у меня под win make.exe sh.exe и ещё несколько утилит всегда лежал то в c:\bin, то в c:\msys\1.0\bin
Соответствующий каталог я вручную прописывл первым в путях (в администраторе корректировал переменную PATH в системной части переменных окружения).

Ну а в этом примере на core2duo 2.4 GHz под линуксом я ничего и не трогал, как само всё легло, так и лежит.
gte
Цитата(ReAl @ Sep 22 2011, 16:40) *
А у меня под win make.exe sh.exe и ещё несколько утилит всегда лежал то в c:\bin, то в c:\msys\1.0\bin

Интересно, какой результат. Ссылку на то, чем я смотрел отправил в личку. Работает без инсталяции.
Ссылку на нее брал в форуме поддержки.

P.S. Откуда make берет такие имена, как "sh.exe.exe", "sh.exe.cmd"
ReAl
1. У меня в том предложении все в прошедшем времени («всегда лежал»). Виндов-то всяких хватает для сборки/проверки, но сейчас «межсезонье» и середина переезда с компа на комп, ни одной развёрнутой нет.
Работаю-то я на 96% в линуксе.

2. А может то и не make. Скорее всего не make.
Попробуйте из командной строки набрать sh.exe и посмотреть результат.
make только какой-то CreateProcess() или exec() делает с именем "sh.exe", а уже по PATH сама ОС ищет, приклеивая по очереди расширения из %PATHEXT%.
gte
Цитата(ReAl @ Sep 22 2011, 23:47) *
1. Работаю-то я на 96% в линуксе.

Понятно, спасибо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.