Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Почему KEIL компилирует медленнее IAR в 30 раз?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > Keil
sandh
Почему KEIL компилирует проект медленнее IAR в 60 раз?
Может быть в настройках есть секрет?
Проект компилируется в KEIL 10минут! А в IAR этот же проект 20 секунд!
Выходной код 32КБайта в обоих случаях.
В KEIL запретил генерацию всех листингов и файлов отладчика - не помогло.
В чем секрет? Может кто-то уже поборол это? Подскажите, пожалуйста!
FormatCft
Цитата(sandh @ Jan 11 2009, 13:04) *
Почему KEIL компилирует проект медленнее IAR в 60 раз?


1) Возможно антивирус очень интересуется работой кейла?  rolleyes.gif


2) У меня была проблема с CW подобная. Помогла только переустановка винды.  smile3046.gif

3) Как-то работал под кейлом. Компилил большие проекты. В принципе скоростью очень был доволен.
klen
когда компиляет, погляди в менеджере задач кто процессорное время жрет, отсюда думать будем.
sandh
Цитата(FormatCft @ Jan 11 2009, 11:17) *
1) Возможно антивирус очень интересуется работой кейла?  rolleyes.gif


2) У меня была проблема с CW подобная. Помогла только переустановка винды.  smile3046.gif

3) Как-то работал под кейлом. Компилил большие проекты. В принципе скоростью очень был доволен.


1.Антивирус отключал и остальные программы тоже - не помогло.
2.Пробовал на разных компьютерах - не помогло.
3.Речь идет о LPC2148 от NXP(Philips).

Цитата(klen @ Jan 11 2009, 12:36) *
когда компиляет, погляди в менеджере задач кто процессорное время жрет, отсюда думать будем.

Ресурсы кушает сначала ca.exe 90% - компоновщик,
затем - la.exe 90% - link_овщик.
sonycman
Цитата(sandh @ Jan 11 2009, 14:32) *
1.Антивирус отключал и остальные программы тоже - не помогло.
2.Пробовал на разных компьютерах - не помогло.
3.Речь идет о LPC2148 от NXP(Philips).


Ресурсы кушает сначала ca.exe 90% - компоновщик,
затем - la.exe 90% - link_овщик.

А вы что, CARMом компилируете? Он уже давно не поддерживается.
Почему-бы RealView не попробовать?
abcdefg
Наблюдал такое при попытке использовать старый компилятор (C-ARM) под свежей uVision.
Если использовать uVision из версии mdk302a.exe (не уверен, но вроде это последняя версия uVision где доступен выбор c-arm'а из менеджера проекта: Project->Manage->Components->Folders/Extensions), то компиляция идет быстро. Вот такой парадокс smile.gif
defunct
Цитата(abcdefg @ Jan 11 2009, 12:44) *
Наблюдал такое при попытке использовать старый компилятор (C-ARM) под свежей uVision.

Если последовательно обновлять кейл от старых версий к новым, то никаких проблем нет!
Парочка старых проектов под CA компилируются в mdk340 так же быстро как и раньше в karm232a.

Значит (если CA добавлялся вручную от mdk302 пакета) вероятно у автора просто что-то криво поставлено или недолечено.
Скорее всего что-то не то с путями.

Посоветую снести keil, установить вначале пакет mdk302, а поверх поставить более новый.
sandh
Цитата(defunct @ Jan 12 2009, 01:05) *
Если последовательно обновлять кейл от старых версий к новым, то никаких проблем нет!
Парочка старых проектов под CA компилируются в mdk340 так же быстро как и раньше в karm232a.

Значит (если CA добавлялся вручную от mdk302 пакета) вероятно у автора просто что-то криво поставлено или недолечено.
Скорее всего что-то не то с путями.

Посоветую снести keil, установить вначале пакет mdk302, а поверх поставить более новый.


Ура!!! Заработал как надо! Скорость бешанная!
Сделал как подсказал defunct: снес все и почистил реестр, затем поставил Keil uVision 3.1 (он есть на диске в книге Тревор Мартин).
И все! Даже без обновления скорость трансляции огромная! Проект меньше секунды обрабатывает!
Причем не RealVision a простой CARM!
Огромное спасибо всем кто помог! Наслаждаюсь!
vesago
Эх опоздал smile.gif Я тоже сижу в карме. Поэтому держу боевую сборку. Сначала ставлю кейл 3.2, в котором последняя версия карма, потом накатываю поверх 3.5.
Сергей Борщ
Цитата(sandh @ Jan 14 2009, 08:54) *
И все! Даже без обновления скорость трансляции огромная! Проект меньше секунды обрабатывает!
Теперь надо разбираться, почему IAR компилирует в 20 раз медленнее? smile.gif
BioWolf2000
Если еще кому интересно. в Options->Output можно убрать галочку Browse Information. Не создаются файлы .CRF и скорость компиляции раз в 30 увеличивается
Forger
Цитата(BioWolf2000 @ Jun 13 2017, 10:56) *
Не создаются файлы .CRF и скорость компиляции раз в 30 увеличивается

Если диск, где лежат файлы проекта, еще из прошлого столетия, то такой "квантовый" скачок скорости вполне возможен sm.gif
У меня проекты лежат на внешнем SSD (usb 3.0), к тому свежий Keil очень хорошо работает на современных многоядерных процессорах.
В итоге любой проект одинаково быстро компилируется с любыми галочками и без оных.
ViKo
У меня была другая причина - Keil лез в интернет за каким-то... Потому что когда вечером на работе его отключали, компилировать было, практически, невозможно. Не знаю, что он хотел принять или передать... w00t.gif
Forger
Цитата(ViKo @ Jun 13 2017, 15:20) *
У меня была другая причина - Keil лез в интернет за каким-то...
Какая версия? Может он паки обновлять пытался?
ViKo
Цитата(Forger @ Jun 13 2017, 15:25) *
Какая версия? Может он паки обновлять пытался?

Нет, не паки. До выключения интернета он же работал шустро. Версия была еще до паков, кажется.
Forger
Цитата(ViKo @ Jun 13 2017, 15:39) *
Версия была еще до паков, кажется.

Скорее всего 4й keil, но на нем уже наверно никто не сидит sm.gif
BioWolf2000
Цитата(Forger @ Jun 13 2017, 14:41) *
Если диск, где лежат файлы проекта, еще из прошлого столетия, то такой "квантовый" скачок скорости вполне возможен sm.gif
У меня проекты лежат на внешнем SSD (usb 3.0), к тому свежий Keil очень хорошо работает на современных многоядерных процессорах.
В итоге любой проект одинаково быстро компилируется с любыми галочками и без оных.


Как раз таки проект лежит на SSD Kingston SUV400S37240G. ОЗУ 16Гб. Процессор i5-6400 2.7Ghz. Win10 x64. С галочкой Browse information компиляция проекта 6:40. Без - 11 секунд. Keil 5.23. Компилятор V5.06
Снятие галочки Debug information ускоряет процесс компиляции только на 1 секунду.
В проекте компилируется 140 файлов. Проект изначально создан генератором STM32Cube. Большое время компиляции занимает стек LwIP

Загрузка системы с галочкой Browse information и без
Forger
Цитата(BioWolf2000 @ Jun 15 2017, 09:29) *
Как раз таки проект лежит на SSD Kingston SUV400S37240G. ОЗУ 16Гб. Процессор i5-6400 2.7Ghz. Win10 x64. С галочкой Browse information компиляция проекта 6:40. Без - 11 секунд. Keil 5.23. Компилятор V5.06
Снятие галочки Debug information ускоряет процесс компиляции только на 1 секунду.

У меня комп на работе намного скромнее (вин 7), но такого поведения я не заметил laughing.gif
Правда проекты у меня не имеют такого числа компилируемых файлой, все "лишнее" и отлаженное выложено в библиотеки (см. ниже).

Цитата
В проекте компилируется 140 файлов. Проект изначально создан генератором STM32Cube. Большое время компиляции занимает стек LwIP

Такую уйму файлов из сторонних библиотек имеет смысл компилировать в lib файлы и подключать к проекту.
В keil есть поддержка дерева проектов (multi-poject workspace), тогда можно просто создать соотв. проекты для формирования lib и подключить их в группу с самим проектом.
Тогда в проекте можно оставить лишь те файлы, которые проходят отладку, а готовые модули можно аналогично "скидывать" в библиотеки (с галочкой Browse information в версии DEBUG и без - RELEASE)
В итоге полная пересборка проекта занимает считанные сек (в любом сочетании галочек) sm.gif

зы. Т. е. проекты храните на системном диске, где винда лежит??
Путь к проекту не содержит русские буквы?
BioWolf2000
Цитата(Forger @ Jun 15 2017, 09:53) *
У меня комп на работе намного скромнее (вин 7), но такого поведения я не заметил laughing.gif
Правда проекты у меня не имеют такого числа компилируемых файлой, все "лишнее" и отлаженное выложено в библиотеки (см. ниже).


Такую уйму файлов из сторонних библиотек имеет смысл компилировать в lib файлы и подключать к проекту.
В keil есть поддержка дерева проектов (multi-poject workspace), тогда можно просто создать соотв. проекты для формирования lib и подключить их в группу с самим проектом.
Тогда в проекте можно оставить лишь те файлы, которые проходят отладку, а готовые модули можно аналогично "скидывать" в библиотеки (с галочкой Browse information в версии DEBUG и без - RELEASE)
В итоге полная пересборка проекта занимает считанные сек (в любом сочетании галочек) sm.gif

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


Путь к проекту не содержит русские буквы. А сам проект да, лежит на системном диске. Вторым диском подключен HDD Seagate 1Tb st1000dm010. Туда я настроил резервное копирование 2 раза в сутки. А сильно критично на системном диске с проектами работать? А за информацию про мультипроекты спасибо, буду сейчас настраивать
Forger
Цитата(BioWolf2000 @ Jun 15 2017, 10:12) *
Путь к проекту не содержит русские буквы. А сам проект да, лежит на системном диске. Вторым диском подключен HDD Seagate 1Tb st1000dm010. Туда я настроил резервное копирование 2 раза в сутки.

А сильно критично на системном диске с проектами работать?

Если есть резервирование, то не критично sm.gif

У меня на системном диске (разумеется SSD!) лежит только винда, установленные программы и свап-файл. На всех компах.
Для хранения проектов у меня используется внешний SSD 250Гб (по USB3.0), на всех моих рабочих компах он определяется под одной и той же буквой (диск Z),
а запуск, отладка и компиляция происходит прямо с диска. Сам диск SSD M2 - крохотный, не больше длинной зажигалки ))
На этом же диске портабл-браузер, портабл-почта, любимая музыка и т.п. .... Прям как вассерман - все свое ношу с собой sm.gif

Оказалось очень удобно - не нужно заниматься ононизмом синхронизацией проектов, истории браузера и т. п.
Разумеется, диск шифрован (под паролем) и в обязательном порядке его содержимое периодически бэкапится на на другой внешний подключаемый диск, который хранится в темном чулане sm.gif

Цитата
А за информацию про мультипроекты спасибо, буду сейчас настраивать

Оч. полезный инструмент, есть во всех нормальных IDE, однако, почему-то не все его используют ...
BioWolf2000
В Keil v.5.24.2 установил компилятор V6.7. Проект стал компилироваться за 12 секунд с включенным Browse Information. Чтобы не выдавало предупреждения, поставил в настройках AC5-like Warnings. Единственная проблема была с компиляцией ассемблерных вставок, генерируемых кубом. В установленной папке STM32Cube подправил файл FREERTOS-STM32F7xx_Configs.xml
Заменил строки
Код
<SubComponent Csub="Keil">    <!-- Keil refers to RVDS files -->
            <File Category="source" Name="Source/portable/RVDS/ARM_CM7/r0p1/port.c"/>
            <File Category="header" Name="Source/portable/RVDS/ARM_CM7/r0p1/portmacro.h"/>
        </SubComponent>


на
Код
<SubComponent Csub="Keil">    <!-- Keil refers to RVDS files -->
            <File Category="source" Name="Source/portable/GCC/ARM_CM7/r0p1/port.c"/>
            <File Category="header" Name="Source/portable/GCC/ARM_CM7/r0p1/portmacro.h"/>
        </SubComponent>




Forger
Цитата(BioWolf2000 @ Jul 21 2017, 13:54) *
В Keil v.5.24.2 установил компилятор V6.7.

А я пока отказался от компилятора v6 в пользу "старого" v5, потому что последний все равно дает меньший код, хотя ARM утверждает обратное.
Сначала предположил, что все дело в стандартных подключаемых библиотеках, поэтому выпилил их в ноль. Но не помогло sad.gif

Поэтом я лично v6 вижу пользу лишь в действительно крупных масштабных проектах, где разница в объёме кода не так критична, а гораздо важнее "умность" компилятора.
Во всех остальных случаях пока что прекрасно справляется v5.
HAL не использую (нет смысла), вполне хватает прямого обращения к регистрам и конечно же "голого" CMSIS.
Сейчас все проекты компилируются быстро. Сильно влияет то, что готовые отлаженные блоки своевременно собираю в библиотеки, которые подключены итоговому проекту (уже писал об этом).
Отладка производится частями с соотв. тестами.
serglg
Цитата(BioWolf2000 @ Jun 13 2017, 13:56) *
Если еще кому интересно. в Options->Output можно убрать галочку Browse Information. Не создаются файлы .CRF и скорость компиляции раз в 30 увеличивается


Ха, реально быстрей стало.
А что мы теряем? Зачем Browse Information?
ohmjke
Цитата(serglg @ Jul 22 2017, 08:04) *
Ха, реально быстрей стало.
А что мы теряем? Зачем Browse Information?


Нужно для навигации по проекту - "Go to definition", "Go to reference".
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.