Перейти к содержанию
    

CCS v.6 и TI CC 8.3.5 долго компиляет исходники

Доброе время суток и с наступившими праздниками! :ok:

 

Есть проект, на C/C++. Часть модулей программы компилируется очень долго: 2 - 10 минут. При этом оптимизатор съедает over 1 ГБ оперативной памяти компа. Причём, если будет  открыт браузер интернета, то весь CCS может упасть - втихоря закрывается и всё.    Разбил код на модули чтоб компилировать отдельно.   Помогло, но не сильно.   Есть несколько жирных классов с их методами - на них и затормаживается компиляция.

 

Какие есть пути решения ускорить компиляцию без ущерба оптимизации?   Стоит максимальная оптимизация: -O3, speed=5.    Замечено, что компиляция именно C++  медленная, чё они(из TI) там натворили ?

Связано ли это с тем что у меня всего 4 ГБ оперативы и 2 ядра по 3 ГГц? (по нынешним меркам - старьё) и с Win7 ?

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 Гб нынче - это несерьёзно :) Для разработчиков уже 16 Гб считается на грани.

А с какой другой версией вы сравниваете? 8.2.z, в которой ещё не было поддержки C++14?

Ну и 1 Гб, поедаемый CCS, - это мало по сравнению с тем, что творят современные браузеры и интернет :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, Grizzly said:

А с какой другой версией вы сравниваете? 8.2.z, в которой ещё не было поддержки C++14?

Ну и 1 Гб, поедаемый CCS, - это мало по сравнению с тем, что творят современные браузеры и интернет :)

С 8.3.3 было также долго.

И не CCS поедает память, а c6x Optimizer - он периодически выскакивает - делает своё дело и закрывается.

Тот же код под MinGW и Visual Studio 2010 компилируется несколько секунд.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 минут назад, __inline__ сказал:

Тот же код под MinGW и Visual Studio 2010 компилируется несколько секунд.

Совсем иная архитектура. Под VLIW непросто оптимизировать, а нужно как следует.

С версии 8.3 стандарт C++14 вместо C++03. Думал, что вы с более ранними версиями сравнивали. Могли что-то кардинально переписать в оптимизаторе. Даже если вещи из C++11/14 вы не используете, потенциально могло бы затронуть. Теперь, думаю, не в этом дело, а в самом устройстве тулчейна и архитектуры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 minutes ago, Grizzly said:

Совсем иная архитектура. Под VLIW непросто оптимизировать, а нужно как следует.

С версии 8.3 стандарт C++14 вместо C++03. Думал, что вы с более ранними версиями сравнивали. Могли что-то кардинально переписать в оптимизаторе. Даже если вещи из C++11/14 вы не используете, потенциально могло бы затронуть. Теперь, думаю, не в этом дело, а в самом устройстве тулчейна и архитектуры.

Я хотел спуститься до 7.x.x, но не вышло: "Embeded C++ does not support templates".  А у меня куча темплейтов.  И замашки в стиле C99:  переменные внутри цикла и в самом цикле, массивы  переменной длины (которые локальные и генерятся в стеке и высвобождаются при выходе из функций).

 

Пробовал 8.3.3 - всё те же тормоза.  Но начиная с этой версии идёт поддержка синтаксиса C99, а он мне как воздух нужен, так как сорцы перелопачивать придётся очень долго под C89.

 

Надо будет попробовать качнуть v. 8.2.x о которой вы пишите.

 

P.S. Даже сраный Keil ARM CC (v.4 старая)  собирает быстрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 минут назад, __inline__ сказал:

Даже сраный Keil ARM CC (v.4 старая)  собирает быстрее.

Нельзя сравнивать несравниваемое. Это две абсолютно различных архитектуры. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

9 часов назад, __inline__ сказал:

Причём, если будет  открыт браузер интернета, то весь CCS может упасть - втихоря закрывается и всё.

Связано ли это с тем что у меня всего 4 ГБ оперативы и 2 ядра по 3 ГГц? (по нынешним меркам - старьё) и с Win7 ?

Если Браузер влияет, то это очень весомый аргумент в пользу нехватки объема памяти.

Но вы самое главное забыли сказать: Win7 у вас 32-х или 64-разрядная? Потому как если 64-разрядная, то ваша проблема решается очень просто - докупить еще 4 ГБ памяти, а если пустых слотов для нее не осталось, то заменить старую память 2x2 ГБ на 2x4 ГБ. Тем более что по нынешним временам это довольно дешевая покупка. Но если Win7 у вас 32-разрядная, то тут вам уже ничто не поможет. Разве что операционку менять, на что вы едва ли согласитесь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

37 minutes ago, Xenia said:

Но вы самое главное забыли сказать: Win7 у вас 32-х или 64-разрядная? Потому как если 64-разрядная, то ваша проблема решается очень просто - докупить еще 4 ГБ памяти, а если пустых слотов для нее не осталось, то заменить старую память 2x2 ГБ на 2x4 ГБ. Тем более что по нынешним временам это довольно дешевая покупка. Но если Win7 у вас 32-разрядная, то тут вам уже ничто не поможет.

64 разряда

 

Quote

Разве что операционку менять, на что вы едва ли согласитесь.

Да! ))) кое-как себя убедил на Win7 перейти, к сожалению на WinXP было более удобнее.

 

6 hours ago, Grizzly said:

А с какой другой версией вы сравниваете? 8.2.z, в которой ещё не было поддержки C++14?

Скачал 8.04 и 8.2.8.  Мне показалось, что проект собирается быстрее.  C++ 03 Mode хватило.   Правда, компилятор ругнулся на _nassert'ы (пришлось задефайнить их в ничто) и не нашёл функцию memset (пришлось <string.h> явно подрубить в сорец).   Скорость работы программы(скомпилянной для DSP) во всех 4-х  версиях (8.0.4   , 8.2.8,  8.3.3  и 8.3.5 )   остаётся одинаковой!

 

Изменено пользователем repstosw

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 минуту назад, __inline__ сказал:

Мне показалось, что проект собирается быстрее.

А вот это уже очень интересно. Понять бы как-то, на сколько стало быстрее...

 

22 минуты назад, __inline__ сказал:

Скорость работы программы(скомпилянной для DSP) во всех 4-х  версиях (8.0.4   , 8.2.8,  8.3.3  и 8.3.5 )   остаётся одинаковой!

Я, если честно, ожидал даже пессимизации в 8.3 :) Хорошо, что этого не случилось. Скорее всего, совсем низкоуровневая оптимизация не изменилась, она отлажена годами, но что-то поменялось на верхнем уровне, поддерживающем нынче C++14.

Главное, чтобы изменения скорости сборки не попали в интервал погрешности измерения.

25 минут назад, __inline__ сказал:

Да! ))) кое-как себя убедил на Win7 перейти, к сожалению на WinXP было более удобнее.

Меня несколько лет назад убедили перейти на Linux, так привык уже, что про Win не хочется ничего знать и слышать. Но браузеры жрут везде как не в себя. Время сейчас такое ;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 minutes ago, Grizzly said:

А вот это уже очень интересно. Понять бы как-то, на сколько стало быстрее...

Не намного, чтобы с 8.3.5 слезть на 8.0.4.

 

Quote

Я, если честно, ожидал даже пессимизации в 8.3 :) Хорошо, что этого не случилось. Скорее всего, совсем низкоуровневая оптимизация не изменилась, она отлажена годами, но что-то поменялось на верхнем уровне, поддерживающем нынче C++14.

Главное, чтобы изменения скорости сборки не попали в интервал погрешности измерения.

Под DSP скомпилянная программа такого рода:

1) Декодирование аудио, пожатого кодеком CELT  - 48 кбит/c через 1 канал McASP

2) Отрисовка графики, её поворот в видеобуфере на 90 градусов.  Буфер 400x240 пикселей 16 бит

3) Перенос буфера в LCD с VSYNC   с помощью PRU #2

4) Опрос кнопок PRU #1

5) Считывание файлов с SD карты в High Speed Mode через 1-битный SPI

6) Распаковка сжатых данных ZLIB

7) Поддержка файлов FatFs

8) Расчёт физики (столкновения объектов, взаимодействие с твёрдым телом) с помощью физ-движка  на вещественной арифметике

9) Микширование на 8 каналов звуков (WAV PCM) + 1 канал музыка (декод CELT пункт 1)

 

Quote

Меня несколько лет назад убедили перейти на Linux, так привык уже, что про Win не хочется ничего знать и слышать. Но браузеры жрут везде как не в себя. Время сейчас такое ;)

 В Linux я работаю крайне редко, при условии, если линуксоеды просят что-нибудь портировать на эту Ось ))

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...