Встраивание Mono против Google V8?
Мы хотим добавить сценарии в проект.
Мы сомневаемся, какой скрипт-движок использовать. Я использовал в прошлом V8, и это довольно впечатляет. Я также использовал Mono, но только в игрушечных проектах или прототипах.
Ограничения:
- скорость исполнения.
- простая интеграция.
- должен работать на окнах.
- 64-битная поддержка.
- компилируется под Visual Studio.
Какой двигатель подходит лучше всего?
(Есть ли какое-нибудь руководство по компиляции Mono под win64 с помощью Visual Studio? Есть ли пакеты, включающие файлы Lib и DLL?)
5 ответов
В дистрибутив Mono включен файл решения MSVS, этого достаточно для создания библиотеки (но вы не сможете собрать файлы.DLL, лучше выбрать их из бинарного дистрибутива). Увидеть mkbundle
для способа встраивания.NET DLL в один двоичный файл. Что касается самого сценария, вы можете либо встроить компилятор Mono C# (он не такой большой, и его легко интегрировать), либо использовать любой из многочисленных языков сценариев, предназначенных для.NET, например IronPython.
Я бы посоветовал вам взглянуть на Луа. Я думаю, что это удовлетворит ваши потребности вполне удовлетворительно.
Поскольку здесь нет ответов на поставленные вопросы, я упомяну ChaiScript (да, я один из создателей проекта). Это механизм сценариев только для заголовков, разработанный исключительно для встраивания в приложения C++. Он имеет полную 64-битную поддержку и работает с MSVC, G++ и MinGW. Единственная внешняя зависимость - это повышение.
Где он не побеждает, так это скорость. Если вам нужно много вычислений в самом скрипте, я утверждаю, что вы используете скрипты неправильно. Чем выше уровень функции, которую вы можете предоставить движку сценариев, тем лучше.
V8. На самом деле это движок сценариев, а не полноценная среда программирования, такая как Mono (которая соперничает с Java по размеру).
Однако... если вам нужен язык сценариев, вы также можете взглянуть на Lua. Его легко внедрить, очень быстро, очень мало, довольно легко программировать, и у него очень либеральная лицензия. Если важна скорость, есть LuaJIT, который все еще находится в стадии разработки, но с осторожностью превзойдет C для численного программирования.