[help needed] event_queue: список или дерево?

Про байтики и логику ЭБУ
Post Reply
User avatar
AndreyB
Site Admin
Posts: 14331
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

event_queue: список или дерево?

Post by AndreyB »

Планировщик https://svn.code.sf.net/p/rusefi/code/trunk/firmware/controllers/system/SingleTimerExecutor.cpp состоит из аппаратного таймера https://svn.code.sf.net/p/rusefi/code/trunk/firmware/hw_layer/microsecond_timer.c и очереди https://svn.code.sf.net/p/rusefi/code/trunk/firmware/controllers/algo/event_queue.cpp

У очереди три операции:
1) добавить задание в заданный момент времени
2) вернуть время слежующего события
3) выполнить все запланнированные на данный момент задания

Сейчас очередь написана с использованием списка https://svn.code.sf.net/p/rusefi/code/trunk/firmware/ext_algo/utlist.h
Количесвто событий в очереди у нас всегда будет достаточно небольшое (этак примерно 10), так что в принципе линейный алгоритм не будет большоё проблемой. Но всё-таки, по уму нужно переписать на дерево, а в идеале вообще провестим микро-тест и сравнить. Как вариант - http://en.cppreference.com/w/cpp/container/multimap

Никто не хочет заняться?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: event_queue: список или дерево?

Post by puff »

при этом компилятор всё равно сделает по-своему?
а чем дерево лучше списка?
но тесты покажут, да…
User avatar
AndreyB
Site Admin
Posts: 14331
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: event_queue: список или дерево?

Post by AndreyB »

puff wrote:а чем дерево лучше списка?
Простого ответа тут нет, тут Вычислительная сложность список O(n), а дерево - O(log n)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: event_queue: список или дерево?

Post by puff »

зато небось памяти отжирает…
Post Reply