roboforum.ru

Технический форум по робототехнике.


Про кольцевой буфер

Вопросы не попавшие в другие категории.

Re: CodeVisionAVR - версия 2!

Сообщение Dmitry__ » 12 июл 2011, 17:45

=DeaD= писал(а):PS: Кольцевой буфер так и не поняли, что такое? :crazy:

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

=DeaD= писал(а):когда роботу нужно остановиться, освободить всю память под какое-нибудь "простенькое" распознавание речи, выполнить распознавание, затем загрузить снова "в память" таблицу переменных под сервы и двинуться вперед

и в этот момент надо было щевельнуть сервой, чтоб не потерять равновесие

"Папа, расскажи, что такое многозадачность? погоди сынок, дискету доформатирую..." :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: CodeVisionAVR - версия 2!

Сообщение =DeaD= » 12 июл 2011, 18:45

2Dmitry__, я не склочничаю, я намекаю: вы прежде чем дальше обвинять меня в непонимании основ программирования, сначала с кольцевым буфером разберитесь, чем он принципиально от сдвигового регистра отличается. Подсказка - сдвиговый регистр выполняет одну операцию за время O(N), а кольцевой буфер за O(1), где N - количество элементов в буфере или в регистре, да и сами типовые операции у них разные.

Добавлено спустя 1 минуту 12 секунд:
Dmitry__ писал(а):и в этот момент надо было щевельнуть сервой, чтоб не потерять равновесие

Это классика демагогии - придумать к задаче дополнительное условие и сузить круг решений.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: CodeVisionAVR - версия 2!

Сообщение Dmitry__ » 12 июл 2011, 22:24

=DeaD= писал(а):я не склочничаю, я намекаю: вы прежде чем дальше обвинять меня в непонимании основ рограммирования, сначала с кольцевым буфером разберитесь

ты именно склочничаешь, т.к. из незаконченного спора, по твоей же причине (тяжелый случай), делаешь односторонние выводы, докажи свою правоту, потом умничай.
С чего ты взял, что я тебя обвиняю в непонимании основ программирования?
Думаю, си я знаю хуже тебя...
Про фир тут продолжим?
=DeaD= писал(а): Подсказка - сдвиговый регистр выполняет одну операцию за время O(N), а кольцевой буфер за O(1), где N - количество элементов в буфере или в регистре

Ну, напиши формулы для получения данных с сдвигового регистра и кольцевого буфера для фир, например, с 3-го и 5-го звена :)
=DeaD= писал(а):Это классика демагогии

я не считаю это демагогией, твой пример слишком примитивен, и нужен только для оправдывания.
Посмотри на свой аватар, на название форума :)
нам же не нужны роботы как в мультфильме про роботов с планеты "Железяка" : спасибо , что пришли, кваа :)
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

Re: CodeVisionAVR - версия 2!

Сообщение =DeaD= » 13 июл 2011, 08:26

Dmitry__ писал(а):ты именно склочничаешь, т.к. из незаконченного спора, по твоей же причине (тяжелый случай), делаешь односторонние выводы, докажи свою правоту, потом умничай.

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

Так вот - это не оно, сдвиговый регистр по определению перекладывает внутри себя элементы и даёт быстрый доступ как раз к нужным нумерованным элементам, а кольцевой буфер наоборот даёт быстро выполнять только операции "взять очередной элемент", "положить очередной элемент" и некоторые специфичные операции - типа извлечь все элементы подряд (т.е. выполнить ряд операций "взять очередной элемент" не сдвигая основные указатели на лежащие в буфере элементы), но он не обязан эффективно давать выполнять операции типа "взять 3 и 5 элемент".

Dmitry__ писал(а):Думаю, си я знаю хуже тебя...

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

Dmitry__ писал(а):Ну, напиши формулы для получения данных с сдвигового регистра и кольцевого буфера для фир, например, с 3-го и 5-го звена :)

Полёт фантазии был безграничен! В фир нету задачи получить данные с 3 и 5 элемента - там есть задача пробежаться по всем элементам массива. Опять придумал себе новую удобную задачу и предлагаешь мне её решать?

Dmitry__ писал(а):я не считаю это демагогией, твой пример слишком примитивен, и нужен только для оправдывания.
Посмотри на свой аватар, на название форума :) нам же не нужны роботы как в мультфильме про роботов с планеты "Железяка" : спасибо , что пришли, кваа :)

Решать выдуманные только что самим собой задачи вместо поставленных - это отдельный вид спорта, я предпочитаю им не заниматься.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: CodeVisionAVR - версия 2!

Сообщение Michael_K » 13 июл 2011, 09:39

=DeaD= писал(а):Решать выдуманные только что самим собой задачи вместо поставленных - это отдельный вид спорта, я предпочитаю им не заниматься.


Да ладно бы кто-то их нормально ставил и решал. Пустая болтовня.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Про кольцевой буфер

Сообщение =DeaD= » 13 июл 2011, 09:43

Так там нормальная в целом была задача - создать в памяти массив, использовать, а потом освободить память. Вместо этого придумывается задача про терминатора из будущего и утверждение, что настоящий кошерный терминатор должен в любую наносекунду рулить волшебными мега-сервами. И пофиг, что сигнал на реальную серву идёт всего 50 раз в секунду, а за эти 20мс скорее всего можно и заново создать все массивы.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Про кольцевой буфер

Сообщение Michael_K » 13 июл 2011, 10:38

Нет нет, Dead, вы не понимаете... Это не нормальная задача - это всё детали реализации.
Почему это "создать в памяти массив"? А если я эту же задачу решу "не создавая", или "не в памяти", или "не массив".
Что значит "освободить", а если у меня памяти гигабайт, и меня ничуть не напрягает, что какой-то кусок занят?
И т.д.

Точно так же как вот те сишные тесты. Они ведь почему так убого себя на пиках ведут? Из-за того, что полностью описывают именно детали реализации, а вовсе не задачу. Фактически они пишут не "нужно выдать результат сложения пяти и семи", а "нужно сложить пять и семь, разместив числа в массиве, разместив массив в области локальных переменных, вызывая функцию сложения" и т.д. и т.п.
Как только эти условия убираешь, программа превращается в тривиальную - "выдать число 12".
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Про кольцевой буфер

Сообщение =DeaD= » 13 июл 2011, 10:47

Какую "эту же" задачу?
Исходная задача звучит как "создать в памяти массив, поработать, освободить память". И всё.
Если бы задача была поставлена на другом уровне - она имела бы другое решение.

Надо сказать предположение "А если у меня гигабайт памяти?" я совсем не ожидал услышать в теме с названием CodeVisionAVR и при ответе на вопрос для конкретного ATMega128 с объемом оперативки всего в 4Kb.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Про кольцевой буфер

Сообщение Michael_K » 13 июл 2011, 10:55

Вот и фиг-то - не задачи это. Это способы.
Давайте тогда поставим "задачу" сложить два числа, не используя память, или вытащить четвертый элемент стека :)

Добавлено спустя 1 минуту 8 секунд:
А отфильтровать ФИРом, например - это, я считаю, нормальная задача. В отличии от "отфильтровать, не используя кольцевой буфер"? например.
Последний раз редактировалось Michael_K 13 июл 2011, 10:56, всего редактировалось 1 раз.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Про кольцевой буфер

Сообщение =DeaD= » 13 июл 2011, 11:00

Michael_K писал(а):Точно так же как вот те сишные тесты. Они ведь почему так убого себя на пиках ведут? Из-за того, что полностью описывают именно детали реализации, а вовсе не задачу. Фактически они пишут не "нужно выдать результат сложения пяти и семи", а "нужно сложить пять и семь, разместив числа в массиве, разместив массив в области локальных переменных, вызывая функцию сложения" и т.д. и т.п.

Так разве не в том смысл, чтобы описывать языком программирования детали реализации? Нельзя же компилятору на вход просто давать дифференциальное уравнение и говорить "давай решай!" :)

Понятно, что есть смысл отдельно оценивать время выполнение стандартной программы на Си, а отдельно сравнивать специализированные решения этой же задачи, заточенные под этот МК\процессор. Как в OpenCV есть оптимизация под расширенные наборы инструкций процессора.

Добавлено спустя 4 минуты 5 секунд:
Michael_K писал(а):Вот и фиг-то - не задачи это. Это способы. Давайте тогда поставим "задачу" сложить два числа, не используя память, или вытащить четвертый элемент стека :)

Есть такая теория - относительности... так вот - задачей может быть вообще "вспахать поле" :)
Для тестирования производительности МК конечно глупо сравнивать единичную операцию сложения 2 чисел :) только как это относится к временному размещению массива в памяти и кольцевому буферу - я не понял :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Про кольцевой буфер

Сообщение Michael_K » 13 июл 2011, 11:00

Так разве не в том смысл, чтобы описывать языком программирования детали реализации?

Смысл программирования - да.

А смысл бенчмарка как сравнения процов полностью теряется.
Последний раз редактировалось Michael_K 13 июл 2011, 11:01, всего редактировалось 1 раз.
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Про кольцевой буфер

Сообщение =DeaD= » 13 июл 2011, 11:01

Michael_K писал(а):А отфильтровать ФИРом, например - это, я считаю, нормальная задача. В отличии от "отфильтровать, не используя кольцевой буфер"? например.

А я предлагал фильтровать не используя кольцевой буфер? :shock:

Добавлено спустя 37 секунд:
Michael_K писал(а):А смысл бенчмарка полностью теряется. Непонятно, что сравниваем.

Очень даже понятно - время выполнения стандартного блока кода, написанного на языке высокого уровня :)
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Про кольцевой буфер

Сообщение Michael_K » 13 июл 2011, 11:02

Я условно.

Добавлено спустя 1 минуту 7 секунд:
=DeaD= писал(а):
Michael_K писал(а):А смысл бенчмарка полностью теряется. Непонятно, что сравниваем.

Очень даже понятно - время выполнения стандартного блока кода, написанного на языке высокого уровня :)

Дополнил выше "бенчмарка, как средства сравнения процов"
Аватара пользователя
Michael_K
 
Сообщения: 6028
Зарегистрирован: 07 окт 2009, 00:29
Откуда: СПб

Re: Про кольцевой буфер

Сообщение =DeaD= » 13 июл 2011, 11:11

Как средства сравнение процов - конечно нет :) для сравнения процов надо чтобы объем времени на чтение входа и выхода информации был несоизмеримо мал по сравнению с объемом вычислений в тестируемой задаче и надо снять ограничение на технические подробности решения задачи, разрешив использовать одинаковый набор алгоритмов и там и там, тогда получим сравнение именно процов на конкретной вычислительной задаче.
Проект [[Open Robotics]] - Универсальные модули для построения роботов
Аватара пользователя
=DeaD=
 
Сообщения: 24218
Зарегистрирован: 06 окт 2004, 18:01
Откуда: Ебург
прог. языки: C++ / PHP / 1C
ФИО: Антон Ботов

Re: Про кольцевой буфер

Сообщение Dmitry__ » 13 июл 2011, 13:00

=DeaD= писал(а):Полёт фантазии был безграничен! В фир нету задачи получить данные с 3 и 5 элемента

да ты шо? возьми нулевые коэффициенты в 1,2,4 звеньюх :)
ты такуешь как тетерев :D
Аватара пользователя
Dmitry__
 
Сообщения: 8033
Зарегистрирован: 13 янв 2011, 15:25
Откуда: Санкт-Петербург

След.

Вернуться в Обо всём

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15