реклама на сайте
подробности

 
 
> Допустимо ли объявлять 16 регистровых переменных, И не использовать volatile. Проц XMEGA
sigmaN
сообщение Nov 11 2014, 21:22
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Есть у меня друг один, мы с нем вечно холливары устраиваем..
На тему оптимизации и вообще даже IOS vs Android можем обсудить biggrin.gif

В общем в этот раз лень мне с ним спорить сильно и я решил сразу коллективный разум подключить, чтоб было убедительнее..
Ну и для поиска истины, конечно же.

Его идея состоит в том, что на XMEGA регистров аж 32шт и около 16ти из них
вполне допустимо забиндить сразу напеременные чтобы(цитирую)"не было задержек при обращении к памяти".
Переменные эти у него глобальные, часто такие, которые используются одновременно и в прерыванииях и за их пределами.
Т.е. это такая своеобразная альтернатива volatile получается..

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

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

Как вы считаете, стоит ему научитсья к месту применить volatile?
В своих проектах часто ли вы объявляете регистровые переменные?
Я, например, ни разу не прибегал к такому. Нет, пробовал конечно, но так чтобы вот действительно была в этом необходимость - не было случаев пока.
Кажется регистровые переменные это чуть ли не отголосок прошлого, когда Си компиляторы почти не умели оптимизировать и приходилось как-то выкручиваться....


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
CrimsonPig
сообщение Nov 13 2014, 14:30
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 329
Регистрация: 23-04-14
Пользователь №: 81 502



Цитата(sigmaN @ Nov 11 2014, 21:22) *
Есть у меня друг один, мы с нем вечно холливары устраиваем..
На тему оптимизации и вообще даже IOS vs Android можем обсудить biggrin.gif


Для доморощенных "оптимизаторов" есть несколько правил, которым желательно следовать:
- "premature optimisation is a root of all evil" ©
- не надо пытаться быть умнее хорошего оптимизирующего компилятора.

..я как-то пытался выяснить по ассемблерному листингу (ARM), что будет эффективнее,
var & 0xFFFFFF00 или (var >>8)<<8 (простейший пример), так компилятор в обоих случаях генерил
абсолютно одинаковый код по своему разумению sm.gif

Те же битхаки (типа обмена переменных через xor) могут оказаться далеко не самыми эффективными. Все может
сильно зависеть от архитектуры процессора и прочих вещей.

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th August 2025 - 01:21
Рейтинг@Mail.ru


Страница сгенерированна за 0.01318 секунд с 7
ELECTRONIX ©2004-2016