Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программирование MCF 5249 (Motorola), Уменьшение производительности камня... 
:(
    Опции темы
val
  Дата 7.10.2003, 17:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

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



Проводим оптимизацию кода с помощью переписывания отдельных функции на ассемблер.
Иногда получается так, что время выполнения кода с переписанной функцией больше, чем до переписывания... Хотя, очевидно, что ассемблерный код явно лучше чем, сгенерированный компилятором!? Эффект просто сбивающий с ног sad.gif sad.gif sad.gif.
Если это только связано с выравниваем по 4 байта, скажите можно ли как-то оптимизировать выравнивание, ведь играться с nop(ами) полный абсурд при громадно программе...



--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
val
Дата 7.10.2003, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

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



Заранее спасибо...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
Crait
Дата 7.10.2003, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Sorry, конечно,
но на фирмах, выпускающих компиляторы, тоже ведь не идиоты сидят...

val, вы учитывали особенности конвеерной организации используемого
Вами процессора ?

Это сообщение отредактировал(а) Crait - 7.10.2003, 23:36
PM MAIL   Вверх
val
Дата 8.10.2003, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

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



Цитата
Sorry, конечно,
но на фирмах, выпускающих компиляторы, тоже ведь не идиоты сидят...


Такой эффект наблюдается даже при оптимизации ассемблерного кода... Есть функция на ассеблере, выкинули из неё несколько ненужных ассемблерных строк, в результате программа работает медленне...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
val
Дата 8.10.2003, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

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



Цитата
val, вы учитывали особенности конвеерной организации используемого
Вами процессора ?


Нет, а как это делается?


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
maxim1000
Дата 8.10.2003, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



к сожалению, не знаю об этом процессоре практически ничего, но попробую предположить:
если функции, переписанные на ассемблер, сохраняются в другом файле, то, возможно, как-то влияет расстояние между точкой вызова функции и ее местоположением в памяти


--------------------
qqq
PM WWW   Вверх
val
Дата 8.10.2003, 10:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

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



Цитата
сожалению, не знаю об этом процессоре практически ничего, но попробую предположить:
если функции, переписанные на ассемблер, сохраняются в другом файле, то, возможно, как-то влияет расстояние между точкой вызова функции и ее местоположением в памяти


Я просто оптимизирую готовые ассемблерные функции и ничего никуда не перношу...


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
maxim1000
Дата 8.10.2003, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

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



еще неплохо было бы провести такой тест:
взять одну оптимизированную функцию и сравнить с соответствующей неоптимизированной
но сравнение проводить не во всем алгоритме, а отдельно на одинаковых данных
если замедление останется, значит, проблема возникает при переписывании
если нет, значит, новая функция в каком-то смысле "не вписывается" в алгоритм, тогда ошибку локализовать будет сложнее


--------------------
qqq
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




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


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

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