Urho3D
GameDev.ru / Сообщества / Urho3D / Форум / LuaJit vs. Ангел

LuaJit vs. Ангел

Поделиться
iKestПостоялецwww20 июня 201721:44#0
Собственно сабж. По производительности. Есть-ли смысл курить Ангел?

ЗЫ. C++ не предлагать! :P

smb_zПостоялецwww20 июня 201722:32#1
Согласно https://codeplea.com/game-scripting-languages (хотя это очень старый обзор) Lua в целом выглядит более быстрым и компактным.
Связано это, по словам автора AngelScript, с тем, что сообщество Lua гораздо больше, соответственно больше ресурсов вложено в развитие.
Вряд ли ситуация с тех пор сильно улучшилась в сторону AngelScript.

Однако лично для меня C++ практически родной язык, поэтому AngelScript выигрывает в плане того, что на нем я могу писать практически так же, как на плюсах. А разница в производительности незаметна - никакой серьезной вычислительной работы я в скриптах не делаю.

Но если для вас Lua и AngelSript одинаково незнакомые языки, я бы посоветовал Lua.

iKestПостоялецwww20 июня 201722:49#2
Для меня lua  как раз хороший знакомый... :)
Просто скрипты интегрировать по разному можно (сравнение производительности вм в тепличных условиях вообще неинтересно), мне интересно именно для урхи - что и насколько быстрее....

Правка: 20 июня 2017 22:50

ZamirПостоялецwww20 июня 201723:53#3
iKest
> C++ не предлагать!
C# можно?) https://github.com/xamarin/urho
iKestПостоялецwww21 июня 20170:38#4
Zamir
И набуя мне тратить время на освоение этой java-кальки, не использовавщуеся толком нигде, кроме винды? Ради форка от форка? Так и на нативном си++ писать в таком случае проблем не составит, благо за мусор париться не особо надо. Вопрос поставлен конкретный: LuaJit vs. AngelScript именно в урхе. И как дополнение - почему автор движка выбрал именно ангела основным скриптовым языком?...

Правка: 21 июня 2017 0:40

ZamirПостоялецwww21 июня 20179:36#5
iKest
> не использовавщуеся толком нигде, кроме винды?
Вы бы для начала поинтересовались в инете, где и как используется c#. Если личный настрой против этого языка - добро, никто не навязывает)
MyrgyПостоялецwww21 июня 201711:40#6
По опыту использования lua/python в реальных проектах, а так же глядя на проекты вроде WOWизложу свое мнение:
самые быстрые куски пишутся на C++
скрипт позволяет упростить разработку бизнес-логики приложения, ускорить прототипирование, уменьшить порог вхождения, при этом большой разницы в языке нет и нужно выбирать то, что удобнее и проще для остальных разработчиков.

из опыта по xml - если просто конфиг - то ок, но один мой коллега в итоге разработал свой язык скриптов использую xml, так что получился тот еще монстрик :)
мы использовали lua, затем обновив версию перешли на дуэт lua + luabind. Получив тем самым классы и какое-то ооп.
Самое важное - нормально менеджить память, вот тут в случае луа были проблемы с GC. Некоторые куски были оптимизированы чем-то вроде beforeDestroy()
где руками убирались циклические ссылки, что существенно ускоряло GC при удалении сцены. Что бы менеджить время жизни объектов использовался shared_from_this -- таким образом и скрипты, и С++ код разделяли владение.
Что-то подобное позже сделал использую boost.python. Питон как язые вероятно побогаче будет, но для встраивания я очень сильно резал runtime.
Так же минимальные требования по памяти сильно возрастают. Из бонусов - JetBrains Python CE может дополнять питоновский код по dll - т.е. можно собрать C++ dll экспортирующую API и получить autocompletion.
Это очен круто. Опять же важен вопрос отладки. Для Lua есть дебагеры (уже не помню названия), то же самое и для питона.

В случае с C# - arm окружение стоит денег (open source только для десктопа), так же учитывайте это.

arprogПостоялецwww21 июня 201714:42#7
Если брать именно Urho3D, то luajit и lua проигрывают AngelScript в скорости. Можно сравнить например сэмпл 20. Luajit проседает примерно на 50% по сравнению с AS. В AS оптимизирован вызов нативных функций в отличии от lua с его стеком.
MyrgyПостоялецwww21 июня 201721:55#8
AS быстрее lua, но по факту скрипты работают только когда происходит какое-то взаимодействие с пользователем либо какое-либо другое событие - таймер, колижен, еще чего-нить
и по факту работает все это в лучшем 5% от вcего времени работы программы. так что по факту скорость скриптового языка значения большого не имеет.
Так что имхо сильно заморачиваться не стоит.
arprogПостоялецwww22 июня 201710:35#9
Если скрипты дополняют логику и работают в 5% времени, то без разницы. Просто кто-то всю логигу на скриптах пишет.
nicks80Новичокwww6 окт. 201714:53#10
когда-то запускал тесты обычный цикл выполнения байт-когда angelscript. он конечно был быстрей. luajit не пробовал.
codingmonkeyПостоялецwww6 окт. 201715:42#11
nicks80
> байт-когда angelscript
Урхо редактор тоже можно собрать в байт код Ангел скрипта и он намного быстрее грузится.
Вроде как в Tools валяется без дела компилятор для *.AS

/ Форум / Urho3D - игровой движок / ЗАДАВАЙТЕ ВОПРОСЫ

2001—2017 © GameDev.ru — Разработка игр