Напишите ответ

Введите сообщение и нажмите Отправить
Параметры

Назад

Обзор темы (новое вверху)

Batu
2018-07-02 13:39:41

Кстати, за оптимизацию данной задачи. Можно организовать переходы вообще без команд сравнения.

Batu
2018-07-02 13:08:30
LynX пишет:
Batu пишет:

Я уже начал. Ибо заниматься оптимизацией ты не будешь.. Даже ждать не стоит

google.com/search?q=преждевременная+оптимизация

Ты перепутал термины. Это ошибка в постановке задачи. Так что нет смысла решать.

LynX
2018-07-02 12:44:10
Batu пишет:

Я уже начал. Ибо заниматься оптимизацией ты не будешь.. Даже ждать не стоит

google.com/search?q=преждевременная+оптимизация

Batu
2018-07-02 12:38:32
Вячеслав Азаров пишет:

Смеётся тот кто смеётся последним! (Жан Пьер Флориан (1755— 1794))

Я уже начал. Ибо заниматься оптимизацией ты не будешь.. Даже ждать не стоит

Вячеслав Азаров
2018-07-02 12:18:39
Batu пишет:
Вячеслав Азаров пишет:
LynX пишет:

... оптимизацию завозят фурами, а на платформах типа avr только провели эксперимент.

Автоматическая оптимизация программ - архисложная задача, которая далеко не каждому по зубам.

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

Смеётся тот кто смеётся последним! (Жан Пьер Флориан (1755— 1794))

Batu
2018-07-02 12:06:45
Вячеслав Азаров пишет:
LynX пишет:

GCC open source, это даже в названии отражено, Столман главный ... маскот. Я не знаком с процессом разработки gcc, но очень сильно сомневаюсь что он не публичный...

Почему не публичный? Публичный. Вот одно из зеркал: https://github.com/gcc-mirror/gcc Можете попробовать внести свои улучшения сделав запрос к оветственным разработчикам или создать свою собственную ветвь GCC, как сделали Google, Atmel или STMicroelecronics с Ac6. Или связаться с авторами и участниками https://gcc.gnu.org/onlinedocs/gcc/Contributors.html. А правовые аспекты я обсуждать не хочу.

Менять надо сам подход к архитектуре процессора. Тогда появятся новые возможности. Скрести по сусекам нет никакого смысла. Работы море, а результат того не стоит.

Batu
2018-07-02 12:03:55
Вячеслав Азаров пишет:
LynX пишет:

... оптимизацию завозят фурами, а на платформах типа avr только провели эксперимент.

Автоматическая оптимизация программ - архисложная задача, которая далеко не каждому по зубам.

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

Вячеслав Азаров
2018-07-02 11:50:06
LynX пишет:

GCC open source, это даже в названии отражено, Столман главный ... маскот. Я не знаком с процессом разработки gcc, но очень сильно сомневаюсь что он не публичный...

Почему не публичный? Публичный. Вот одно из зеркал: https://github.com/gcc-mirror/gcc Можете попробовать внести свои улучшения сделав запрос к оветственным разработчикам или создать свою собственную ветвь GCC, как сделали Google, Atmel или STMicroelecronics с Ac6. Или связаться с авторами и участниками https://gcc.gnu.org/onlinedocs/gcc/Contributors.html. А правовые аспекты я обсуждать не хочу.

Batu
2018-07-02 07:14:09

По-моему первый пост куда решил встрять. Все в традициях соц. сетей. Каждый слышит сам себя и спорит с оппонентом когда и смысл спора пропал. А то, что я хотел сказать так никто и не понял. Жаль. Есть минимум 3 способа увеличить производительность, уменьшить память и все это без потери читабельности. Рассказать некому.. Хотя вроде собеседники вполне соображающие. Парадокс.

LynX
2018-07-01 23:57:16

GCC open source, это даже в названии отражено, Столман главный ... маскот. Я не знаком с процессом разработки gcc, но очень сильно сомневаюсь что он не публичный.

В реестр национального интелектуального достояния? Круто! Но в эти реестры заносят по уровню значимости в истории и ровным счетом ничего не говорит.


А про бекэнд llvm для avr, это я так, к слову сказал, просто зашел на гитхаб, а там ни одного коммита за последний год, вот сейчас глянул точнее - его слили в главный llvm и потихоньку пилят. Преимущество в том что его можно особо и не пилить. Любая оптимизация добавляемая в llvm скажем для компиляции в MacOS, и любой язык, будет работать и на благо всего семейства, включая AVR, так что он улучшается даже ничего не делая в AVR части, готовность ее состояния не знаю, но там тоже потихоньку процесс идет.

IAR нет потому что есть open source решения, которые поддерживают большее количетво платформ. И... скажем между первыми 10 топовыми компиляторами, разница ... почти нулевая. Даже сравнивать не надо, все по закону кого-то там (достижение идеала по экспоненциальной сложности).

Вячеслав Азаров
2018-07-01 23:33:08
LynX пишет:

... оптимизацию завозят фурами, а на платформах типа avr только провели эксперимент.

Автоматическая оптимизация программ - архисложная задача, которая далеко не каждому по зубам. GCC это не эксперимент, а инструментальный компилятор американской промышленности, как и POSIX, который занесен в реестр национального интелектуального достояния США. Нам, просто, дают поиграть, публичными версиями. Хотите лучше, тогда смотрите на IAR.

LynX
2018-07-01 23:15:53
Вячеслав Азаров пишет:
LynX пишет:

Вячеслав Азаров, проверил Ваш пример, так получается с -O2, попробуйте -Os, получается опять дерево. Или в case значение более 255 тоже дерево. (Ну т.е. что не противоречит ничему вышесказанному, но просто сравнил) ...

Да это не двоичный поиск по дереву, просто несортированый список сравнений. Я даже незнаю, делает ли такое AVR GCC.

Не совсем понял. Что-то не хочется по каждому переходу разбирать, но в начале переходы идут на большие блоки, а с больших на блоки поменьше. В конце из одиночных все прыгает в точку возврата. По крайней мере так и должно выглядеть бинарное дерево. Что такое "несортированый список сравнений" не понял.

Ну и бинарное дерево это не что-то архисложное. Чего бы ему такого не уметь. GCC конечно не №1, AVR GCC может и отставать от родителя, но это более чем адекватный компилятор.

P.S. В clang llvm сделали разбиение на бекэенд и фронтенд компиляцию, т.е. это должно позволить компилировать много языков с максимально возможной оптимизацией и на много платформ. Несколько языков завезли, оптимизацию завозят фурами, а на платформах типа avr только провели эксперимент.

Batu
2018-07-01 22:50:00
LynX пишет:
Batu пишет:

Меня не переубедил.

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

Понятие красоты у каждого свое.. Видимо я очень жадный и по памяти и по производительности. Я б не использовал Switch для данной задачи на этом процессоре.

Вячеслав Азаров
2018-07-01 22:47:21
LynX пишет:

Вячеслав Азаров, проверил Ваш пример, так получается с -O2, попробуйте -Os, получается опять дерево. Или в case значение более 255 тоже дерево. (Ну т.е. что не противоречит ничему вышесказанному, но просто сравнил) ...

Да это не двоичный поиск по дереву, просто несортированый список сравнений. Я даже незнаю, делает ли такое AVR GCC.

LynX
2018-07-01 22:32:13

Вячеслав Азаров, проверил Ваш пример, так получается с -O2, попробуйте -Os, получается опять дерево. Или в case значение более 255 тоже дерево. (Ну т.е. что не противоречит ничему вышесказанному, но просто сравнил)

Batu пишет:

А для примера было бы достаточно и 3-х Case.

Бинарное дерево для трех элементов? О да, это даст большой прирост в производительности. Но таки да, для трех проверок он их сделает последовательно, браво, таки есть и третий случай, когда как не делай разницы почти никакой! С четырех уже делает дерево.

Batu пишет:

Такое решение все равно жопа для решения предложенной задачи.

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

Batu пишет:

Меня не переубедил.

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

Подвал раздела