Каково преимущество микропродуги Python Man Python, чем Coontine Lua в реализации штата для игры?

StackOverflow https://stackoverflow.com/questions/4064594

Вопрос

Любое преимущество на уменьшении с стеком, меньше, чем COROUTINE LUA? В чем разница их?

Это было полезно?

Решение

Stackless Python и Tasklets (я не сделал никакого программирования с Staterless Python, но я прочитал некоторые детали о том, как она реализована):

Плюсы:

  1. Легкий большую часть времени.
  2. Имеет планировщик для управления, какой Tasklet получает резюме в следующем после текущей доходности.
  3. Поддержка упреждающего планирования. (т.е. запустить для x инструкции)
  4. Каналы для связи между заданными задач.

Минусы:

  1. Иногда нужен C-стек при получении с помощью Tasklet. (т.е. при уходе от некоторых c обратных вызовов)

LUA 5.1 с равними Coroutines:

Плюсы:

  1. Легкий.
  2. Резюме () / Доходность () Функции позволяют потребителю / производителю модели связи.

Минусы:

  1. Нет встроенного планировщика. Вы должны управлять возобновлением и ухожению Coroutines.
  2. Не может уступать от функции C, метаметода или итератора. (Lua 5.2 удалит большинство из этих ограничений, Luajit 1.1 обеспечивает легкий коммутатор C-стека к выходу из любого места)
  3. Нет встроенной поддержки упреждающей планирования. (должен будет использовать отладочные крючки)

Луа 5.1 с ConculrentLua:

Плюсы:

  1. Легкий.
  2. Планировщик с совместным переключением контекста.
  3. Стиль сообщений Erlang передает связь между задачами.
  4. Поддержка прозрачного распределенного сообщения, проходящего между узлами.

Минусы:

  1. Не может уступать от функции C, метаметода или итератора. (Опять же, большинство из этих ограничений проходят с Lua 5.2 и Luajit)
  2. Нет встроенной поддержки упреждающей планирования. (должен будет использовать отладочные крючки)

Luajit 2.0 бета с бета с ConculrentLua:

Плюсы:

  1. Легкий.
  2. Планировщик с совместным переключением контекста.
  3. Стиль сообщений Erlang передает связь между задачами.
  4. Поддержка прозрачного распределенного сообщения, проходящего между узлами.
  5. Очень быстрая поддержка JIT делает Луа намного быстрее тогда питона

Минусы:

  1. Не может быть в состоянии получить от функции C прямо сейчас. Это может быть поддержано в будущих выпусках.
  2. Нет встроенной поддержки упреждающей планирования. (должен будет использовать отладочные крючки)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top