Время компиляции
- Войдите на сайт для отправки комментариев
Чт, 25/02/2016 - 13:47
Слишком долго компилится проект, больше минуты (Arduino IDE v.1.6.7).
Проект получается не маленький:
Скетч использует 40 584 байт (15%) памяти устройства. Всего доступно 253 952 байт.
Глобальные переменные используют 4 156 байт (50%) динамической памяти, оставляя 4 036 байт для локальных переменных. Максимум: 8 192 байт.
Но все равно должен бы быстрее компилиться. А у кого-то есть проблемы со временем компиляции?
Так же долго компилиться этот проект в Microsoft Visual Studio:
Binary sketch size: 42 210 bytes (used 17% of a 253 952 byte maximum) (30,76 secs)
Minimum Memory Usage: 4156 bytes (51% of a 8192 byte maximum)
Можно ли как-то ускорить время компиляции?
Почему получается разный размер памяти в Arduino IDE и в MVS?
AmateurFF, сделайте папку для временных файлов %TEMP% на рам-диске. У меня компилиться почти мгновенно.
У меня Win10 Pro x64, 8GB ОЗУ. Система стоит на SSD Toshiba THNSNH128GBST.
Надо ли в этом случае рам-диск?
AmateurFF, у меня тоже SSD, это быстрее, чем на HDD, но всё равно гораздо медленнее чем RAM-диск в оперативке. Я использую SoftPerfect RAM Disk
Установил SoftPerfect RAM Disk. Создал TEMP:
Том в устройстве G не имеет метки. Серийный номер тома: 5566-7788 Содержимое папки G:\Temp 25.02.2016 14:36 <DIR> . 25.02.2016 14:36 <DIR> .. 25.02.2016 14:36 0 1.dir 25.02.2016 14:33 850 AdobeARM.log 25.02.2016 14:31 0 tmpB629.tmp 25.02.2016 14:31 <DIR> VC++ 25.02.2016 14:31 <DIR> vs.mcj-113109805 25.02.2016 14:31 <DIR> VsHub 25.02.2016 14:31 <DIR> _avast_ 3 файлов 850 байт Содержимое папки G:\Temp\VC++ 25.02.2016 14:31 <DIR> . 25.02.2016 14:31 <DIR> .. 25.02.2016 14:31 <DIR> CSBOILER-8f42ca46 0 файлов 0 байт Содержимое папки G:\Temp\VC++\CSBOILER-8f42ca46 25.02.2016 14:31 <DIR> . 25.02.2016 14:31 <DIR> .. 25.02.2016 14:35 78 905 344 CSBoiler.sdf 1 файлов 78 905 344 байт Содержимое папки G:\Temp\vs.mcj-113109805 25.02.2016 14:31 <DIR> . 25.02.2016 14:31 <DIR> .. 0 файлов 0 байт Содержимое папки G:\Temp\VsHub 25.02.2016 14:31 <DIR> . 25.02.2016 14:31 <DIR> .. 0 файлов 0 байт Содержимое папки G:\Temp\_avast_ 25.02.2016 14:31 <DIR> . 25.02.2016 14:31 <DIR> .. 0 файлов 0 байт Всего файлов: 4 файлов 78 906 194 байт 17 папок 2 039 599 104 байт свободноТолько компиляция всеравно идет долго:
По ваши скриншотам ничто не говорит о том, чо компиляция идёт именно на рам-диске. Вы сделали новый инвайронментс для темпов на рам диск? Вот как-то так: http://skalolaskovy.ru/windows/188-environment-variable-temp-and-tmp
dimax, спасибо за совет - тоже страдал долгой компиляцией даже мелких по сравнению с ТС скетчей... Сейчас дело пошло повеселее)
Печально, все те же 40-60 сек, как в Arduino IDE так и в MVS.
Переменные среды установил и для Tmp и для Temp
Может что-то с настройками компилятора?
PS. Avast отключал на время компиляции. Загрузка процессора не более 30 %.
PPS. Время компиляции скетча Blink - 15-20 сек.
AmateurFF, после компиляции ардуиной на рамдиске остаются папки вида build****.tmp ? У меня блинк компилится первый раз примерно 3-4 секунды, если повторно -то примерно секунда-полторы на глаз. И это я считаю ещё тормозит, на свежей винде было почти мгновенно. Возможно операционка ваша тормозит процессы.
Еще раз провел замеры времени компиляции с RAM диском, Arduino IDE 1.6.7:
Blink: 1) 8 сек; 2) 3 сек; 3) 3 сек.
Мой проект: 1) 70 сек; 2) 59 сек; 3) 59 сек.
MVS
Blink: 1) 7,16 сек; 2) 0,59 сек; 3) 0,58 сек.
Мой проект: 1) 27,57 сек; 2)29,73 сек; 3) 29,78 сек.
Не удалось прикрепить DIR всего RAM Drive. Но вот фрагменты:
AmateurFF, да, видно что собирает уже в рамдиске. Проверьте ещё SSD на скорость чтения мелких файлов.
Выполнил тест SSD
Ну и заодно тест системы:
есть подозрение, что антивирус перехватывает каждый создаваемый при компиляции файл (а их много генерится).
У меня на Windows c SSD тоже компилируется неспешно, а тот же проект на Mac с HDD почти мгновенно.
AmateurFF, у меня примерно такие-же скорости SSD. Может и в правду антивирус..
Отключил до перезагрузки Avast. Время компиляции моего проекта в MVS уменьшилось до 25-20 сек.
Странно почему он вооще перекомпиливает весь проект даже когда я ни одной строчки не правлю.
Переместил проект на RAMDrive. Получаю примерно те же 20 сек /проект в MVS. Arduino IDE отстает примерно в 2 раза.
на 2021 ничего не изменилось? Разницы не заметил с виртуальным TEMP и без. Аваст отключен.
Вопрос медленной компиляции программ в IDE так и не решён? Пока работал с платой UNO - было нормально (терпимо). А сейчас работаю с ESP32 - выбешивает просто !
Вопрос медленной компиляции программ в IDE так и не решён? Пока работал с платой UNO - было нормально (терпимо). А сейчас работаю с ESP32 - выбешивает просто !
медленно это сколько?
Более мощный комп решает вопрос. Недавно сам в этом убедился ))
Более мощный комп решает вопрос. Недавно сам в этом убедился ))
но ты даже представить себе не можешь насколько быстро компилируется на таком жеж но двухпроцессорном с 128 гигами озу )))
Такой же, но двухпроцессорный - это сказки )))
ЗЫ: пару месяцев назад сломался ноут, на нем компиляция шла с минуту. На новом системнике (не топовом) - то же самое максимум секунд пять. Не мгновенно, но совсем не напрягает )))))
Вопрос медленной компиляции программ в IDE так и не решён? Пока работал с платой UNO - было нормально (терпимо). А сейчас работаю с ESP32 - выбешивает просто !
медленно это сколько?
Маленькая тестовая программка проигрывания wav файла на внутреннем DAC компилируется 1мин 5 сек. Компьютер то не старый, ему всего лет семь. I5-4670 3.4 Ггц, 8 Гб, SSD. В голове не укладываются такие тормоза.
Такой же, но двухпроцессорный - это сказки )))
ЗЫ: пару месяцев назад сломался ноут, на нем компиляция шла с минуту. На новом системнике (не топовом) - то же самое максимум секунд пять. Не мгновенно, но совсем не напрягает )))))
ссылки жеж были, по 64 гига памяти на проц, компилирует секунду, точнее один щелчок мыши
Вопрос медленной компиляции программ в IDE так и не решён? Пока работал с платой UNO - было нормально (терпимо). А сейчас работаю с ESP32 - выбешивает просто !
медленно это сколько?
Маленькая тестовая программка проигрывания wav файла на внутреннем DAC компилируется 1мин 5 сек. Компьютер то не старый, ему всего лет семь. I5-4670 3.4 Ггц, 8 Гб, SSD. В голове не укладываются такие тормоза.
мало памяти
Такой же, но двухпроцессорный - это сказки )))
ЗЫ: пару месяцев назад сломался ноут, на нем компиляция шла с минуту. На новом системнике (не топовом) - то же самое максимум секунд пять. Не мгновенно, но совсем не напрягает )))))
ссылки жеж были, по 64 гига памяти на проц, компилирует секунду, точнее один щелчок мыши
Я ж говорю, что такой же, но о двух процессорах - это сказки. Не поставишь ты на свой комп второй процессор. И памяти больше, чем материнка поддерживает, не воткнешь
Компьютер то не старый, ему всего лет семь.
приехали
Такой же, но двухпроцессорный - это сказки )))
ЗЫ: пару месяцев назад сломался ноут, на нем компиляция шла с минуту. На новом системнике (не топовом) - то же самое максимум секунд пять. Не мгновенно, но совсем не напрягает )))))
Вот так и должно быть. В инете поискал по этой теме , такого бреда начитался.
Такой же, но двухпроцессорный - это сказки )))
ЗЫ: пару месяцев назад сломался ноут, на нем компиляция шла с минуту. На новом системнике (не топовом) - то же самое максимум секунд пять. Не мгновенно, но совсем не напрягает )))))
ссылки жеж были, по 64 гига памяти на проц, компилирует секунду, точнее один щелчок мыши
Я ж говорю, что такой же, но о двух процессорах - это сказки. Не поставишь ты на свой комп второй процессор. И памяти больше, чем материнка поддерживает, не воткнешь
материнка поддерживает два процессора и 128 гиг озу, вы брали однопроцессорную, есть и двухпроцессорные, я же ссылку давал, правда продаван скурвился, не советую
Компилятор языка программирования не может требовать столько ресурсов, это же не игрушка суперсовременная, в которой вся ставка на пожирание ресурсов, а на оптимизацию кода времени не хватает у разработчика.
Компилятор языка программирования не может требовать столько ресурсов, это же не игрушка суперсовременная, в которой вся ставка на пожирание ресурсов, а на оптимизацию кода времени не хватает у разработчика.
поставь линукс, IDE разверни как portable, аддон только нужный и никаких лишних библиотек и ты будешь приятно удивлён
Более мощный комп решает вопрос. Недавно сам в этом убедился ))
но ты даже представить себе не можешь насколько быстро компилируется на таком жеж но двухпроцессорном с 128 гигами озу )))
Сказка, на Xeon 10 ядерном пустой проект минимум 10 секунд, все интерпретаторы г....
ЗЫ. Я про Java и подобном....
Точняк, Java очень хорошо грузит прцессор. В диспетчере задач сейчас посмотрел. Тогда всё ясно.
Компилятор языка программирования не может требовать столько ресурсов, это же не игрушка суперсовременная, в которой вся ставка на пожирание ресурсов, а на оптимизацию кода времени не хватает у разработчика.
поставь линукс, IDE разверни как portable, аддон только нужный и никаких лишних библиотек и ты будешь приятно удивлён
Это хорошо. Но я с линуксом почти никак. Если припрёт конечно разберусь. Для меня пока и так слишком много нового, тот же arduino UNO, и ещё ESP32. Я увлекся этим месяца два назад.
Сколько волшебного бреда. File->preferences->settings->show verbose output during->compile всё прекрасно показывает. Arduino IDE по очереди проверяет/компилирует кучу файлов ядра для esp8266/esp32, потом либы, потом вашу чудо-программу, потом линкует. Компьютер пора обновить, на свежем современном компьютере компиляция под esp8266 занимает секунд 5-7. На 3570k/32GB RAM то же самое - больше минуты.
Бред. А что, лучше, чтобы те, у кого есть эти ресурсы, простаивали? Всегда можно выбрать свой уровень "потребления" ресурсов. Да и компиляторы тоже бывают прожорливыми.
Полный бред. Сейчас капитализм. Разработчикам надо платить. Платите вы, покупая игры. Вы не купите идеально заоптимизированную игру, для небогатых людей с убогими компами, вышедшую позже, чем у конкурентов, за 23750 рублей, вместо 300р в стиме у "не оптимизировавшего" (о боже, да и что оптимизировать-то дальше? unreal engine? В который вложены миллиарды долларов, и который оптимизирован по самое не балуйся?) код, но быстрого и массового разработчика. Рукожопов геймдевов, правда, действительно хватает, но дело не в этом. Всё, что действительно требует оптимизации - ещё как оптимизировано - ведь это деньги, очень много денег.
Хм, а можно ведь и начать с себя. Оптимизируйте свой код. Зачем пользоваться неоптимизированной ардуино иде? Напишите свою программу на ассемблере. Ну ладно, не надо, пишите хотя бы на си, один фиг. Напишите свой makefile для своего кода. Объектники ядра ведь и правда не всегда нужно перекомпилировать каждый раз. Покрутите cmake, изучите espressif sdk, пропишите в мейкфайл все абсолютные пути ко всем объектам, ко всем библиотекам. Проверяйте сами кэш объектников, многопоточно конечно же. Вызывайте g++ только, когда нужно, а когда не нужно, используйте кэшированный собранный объектник espressif-овского ядра, и в итоге, при пересборке, будет перекомпилироваться только ваш файл программы, а далее быстренько линковаться, и весь процесс займёт на вашем 4670 1-2 секунды. Ой, а это занятие выглядит долго и муторно? Ну, вот так и везде. Заодно, после этого, будете иметь некоторое небольшое билд-менеджеровское право чихвостить всех других разработчиков, даже джавы (тут просто фейспалм), даже игровых :)
Сказка, на Xeon 10 ядерном пустой проект минимум 10 секунд, все интерпретаторы г....
ЗЫ. Я про Java и подобном....
отличный язык, только требует много ресурсов...был бы г...на нём не писались бы такие ответственные программы
Сказка, на Xeon 10 ядерном пустой проект минимум 10 секунд, все интерпретаторы г....
ЗЫ. Я про Java и подобном....
отличный язык, только требует много ресурсов...был бы г...на нём не писались бы такие ответственные программы
Ответственные это какие)?
Arduino ide? Или установщик Oracle sql сервер?
Сказка, на Xeon 10 ядерном пустой проект минимум 10 секунд, все интерпретаторы г....
ЗЫ. Я про Java и подобном....
отличный язык, только требует много ресурсов...был бы г...на нём не писались бы такие ответственные программы
все банковские приложения на нём
все банковские приложения на нём
Просто потому, что кросплатформенно.
Сказка, на Xeon 10 ядерном пустой проект минимум 10 секунд, все интерпретаторы г....
ЗЫ. Я про Java и подобном....
отличный язык, только требует много ресурсов...был бы г...на нём не писались бы такие ответственные программы
все банковские приложения на нём
Любопытно, доеду до работы, залезу в образ APTRA/NCR Wincor, посмотрю....
тоже любопытно
тоже любопытно
нет там ничего интересного, нижний софт, который с железом работает - сплошные бинарники, при загрузке ОС службы запускаются, а вот верхний софт, который с юзером взаимодействует, у меня например TellMe, он как раз судя по всему на Java написан.
на Xeon 10 ядерном пустой проект минимум 10 секунд
Перепроверил, пустой проект под Arduino Nano после первого запуска IDE компилируется ~22 секунды, последующие компиляции ~11 секунд.
Я использую SoftPerfect RAM Disk
Хорошая штука, быстрее стало, спасибо.
...про Java...
отличный язык, только требует много ресурсов...был бы г...на нём не писались бы такие ответственные программы
все банковские приложения на нём
Пробовал компилировать одну и ту же программу на разных компьютерах.
На первом Win 10 64 bit, i5-4670, 8 гб, ssd 240 гб
На вторм Win 10 32 bit, IPentium G870, 4 гб, ssd 120 гб
Первый помощнее будет, в два раза больше памяти, проц по таблице сравнительной производительности процентов на 30 получше.
IDE Arduino одной версии 1.8.19, носимая.
Замерял время второй компиляции.
Так вот на втором, более слабом компьютере, получается быстрее - 30 сек.
На первом, как я писал вчера, те же 1мин. 5сек.
Как то не логично.
Попробовал пустой скетч на второй компиляции, на обоих 11 сек.
Наверное на 64 битном виндовсе 32 бит ардуино IDE работает медленнее?
Читал что на x64 32 bit программы работают через эмулятор.
Больше никаких мыслей.
Я использую SoftPerfect RAM Disk
Хорошая штука, быстрее стало, спасибо.
А таблетка есть? Халявы то всегда хочется:))
Так вот на втором, более слабом компьютере, получается быстрее - 30 сек.
На первом, как я писал вчера, те же 1мин. 5сек.
Как то не логично.
Почитайте про рециклинг и всю логику поймёте.
Маркетинг производителей. Пока материнские платы будут использовать медные проводники, максимальная частота так и останется 33 MHz и 66 MHz если используют фронт и спад тактовой по периферийной шине (со времён 486 компов).