Клонирование состояние Lua

Будьте подготовлены к любой вход и любой вход, который Вы получаете, который неожидан, дамп к журналам. (В причине. При чтении паролей от пользователя не выводите это к журналам! И не регистрируйте тысячи этих видов сообщений к журналам в секунду. Причина о содержании и вероятности и частоте перед входом его.)

я только говорю о проверке ввода данных пользователем. Например, если Вы читаете Запросы HTTP, что Вы ожидаете содержать XML, готовиться к другим форматам данных. Я был удивлен видеть ответы HTML, где я ожидал только XML - пока я не смотрел и видел, что мой запрос проходил прозрачный прокси, о котором я не знал и что клиент требовал незнания - и прокси привел к таймауту попытки завершить запрос. Таким образом прокси возвратил ошибочную страницу HTML моему клиенту, путая heck из клиента, который ожидал только данные XML.

Таким образом, даже когда Вы думаете, что управляете обоими концами провода, можно получить неожиданные форматы данных без любой включаемой подлости. Будьте подготовлены, кодируйте оборонительно и обеспечьте диагностический вывод в случае неожиданного входа.

6
задан RBerteig 6 September 2009 в 17:59
поделиться

3 ответа

Также есть дорожки ( скачать , документы ) и в сравнении со всеми известными мне подобными продуктами.

О кольцах в сравнительном листе говорится:

Rings предлагает отдельные состояния Lua, но нет многопоточности. Это делает это простой, но он не будет использовать более одного Ядро ЦП.

Примечание: в сравнительной таблице указано, что дорожки будут упорядочивать только «нециклические таблицы». Он выполняет циклы и выполняет упорядочивание функций, повышение значений и т. Д. И делает копии между состояниями Lua как прямые копии, не нуждаясь в преобразовании содержимого в середину. Это делает его быстрым.

1
ответ дан 11 December 2019 в 00:40
поделиться

Если вы работаете в Linux, вы можете попробовать экспериментальную библиотеку на основе lper , LPSM , созданную одним из авторов Lua.

1
ответ дан 11 December 2019 в 00:40
поделиться

You want to consider using Lua's coroutines for each autonomous agent, instead of a completely separate VM. Coroutines are a more lightweight solution, but may or may not be suitable for your application.

If you can't change the architecture, you might try LuaJIT. It might make the initialization fast enough for your purposes.

More options:

  1. Rings: "Rings is a library which provides a way to create new Lua states from within Lua. It also offers a simple way to communicate between the creator (master) and the created (slave) states."

  2. Pluto: "Pluto is a library which allows users to write arbitrarily large portions of the "Lua universe" into a flat file, and later read them back into the same or a different Lua universe."

4
ответ дан 11 December 2019 в 00:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: