Планировщик 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
Никто не хочет заняться?
[help needed] event_queue: список или дерево?
- AndreyB
- Site Admin
- Posts: 14341
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
event_queue: список или дерево?
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
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: event_queue: список или дерево?
при этом компилятор всё равно сделает по-своему?
а чем дерево лучше списка?
но тесты покажут, да…
а чем дерево лучше списка?
но тесты покажут, да…
- AndreyB
- Site Admin
- Posts: 14341
- Joined: Wed Aug 28, 2013 1:28 am
- Location: Jersey City
- Github Username: rusefillc
- Slack: Andrey B
Re: event_queue: список или дерево?
Простого ответа тут нет, тут Вычислительная сложность список O(n), а дерево - O(log n)puff wrote:а чем дерево лучше списка?
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
Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Re: event_queue: список или дерево?
зато небось памяти отжирает…