Каково преимущество микропродуги Python Man Python, чем Coontine Lua в реализации штата для игры?
-
27-09-2019 - |
Вопрос
Любое преимущество на уменьшении с стеком, меньше, чем COROUTINE LUA? В чем разница их?
Решение
Stackless Python и Tasklets (я не сделал никакого программирования с Staterless Python, но я прочитал некоторые детали о том, как она реализована):
Плюсы:
- Легкий большую часть времени.
- Имеет планировщик для управления, какой Tasklet получает резюме в следующем после текущей доходности.
- Поддержка упреждающего планирования. (т.е. запустить для x инструкции)
- Каналы для связи между заданными задач.
Минусы:
- Иногда нужен C-стек при получении с помощью Tasklet. (т.е. при уходе от некоторых c обратных вызовов)
LUA 5.1 с равними Coroutines:
Плюсы:
- Легкий.
- Резюме () / Доходность () Функции позволяют потребителю / производителю модели связи.
Минусы:
- Нет встроенного планировщика. Вы должны управлять возобновлением и ухожению Coroutines.
- Не может уступать от функции C, метаметода или итератора. (Lua 5.2 удалит большинство из этих ограничений, Luajit 1.1 обеспечивает легкий коммутатор C-стека к выходу из любого места)
- Нет встроенной поддержки упреждающей планирования. (должен будет использовать отладочные крючки)
Луа 5.1 с ConculrentLua:
Плюсы:
- Легкий.
- Планировщик с совместным переключением контекста.
- Стиль сообщений Erlang передает связь между задачами.
- Поддержка прозрачного распределенного сообщения, проходящего между узлами.
Минусы:
- Не может уступать от функции C, метаметода или итератора. (Опять же, большинство из этих ограничений проходят с Lua 5.2 и Luajit)
- Нет встроенной поддержки упреждающей планирования. (должен будет использовать отладочные крючки)
Luajit 2.0 бета с бета с ConculrentLua:
Плюсы:
- Легкий.
- Планировщик с совместным переключением контекста.
- Стиль сообщений Erlang передает связь между задачами.
- Поддержка прозрачного распределенного сообщения, проходящего между узлами.
- Очень быстрая поддержка JIT делает Луа намного быстрее тогда питона
Минусы:
- Не может быть в состоянии получить от функции C прямо сейчас. Это может быть поддержано в будущих выпусках.
- Нет встроенной поддержки упреждающей планирования. (должен будет использовать отладочные крючки)
Не связан с StackOverflow