Java中最快的脚本语言是什么?

3
我正在用Java制作一个落沙游戏。我希望用户能够为游戏编写自己的引擎,因此我认为脚本语言可能适合这个任务。我已经尝试了使用jython编写小型脚本,但它比Java版本慢得多。
我需要一种具有快速循环和/或快速数组访问的脚本语言,因为游戏将大量使用这些功能。如果您对让用户为游戏编写自己的引擎有其他建议,请告诉我。
我也不确定这是否可行。如果您认为不行,请告诉我原因以及可能的替代方案。

重复?https://dev59.com/jknSa4cB1Zd3GeqPR-Jq - Kai Sternad
3个回答

2

JavaCC

您可以使用JavaCC编写自己的简单游戏语言。这提供了所有可能需要的灵活性和本机Java速度(实际上,这取决于您的实现)。但是您需要保持语法简单,否则会需要一些努力……

Java

Java?是的,Java!为什么不让用户通过Java代码扩展您的游戏呢?在Java 6中,有一个Java编译器API:

Beanshell vs Rhino

一些关于BeanShellRhino(Javascript)解释器的性能比较(Rhino获胜):


如果你自己编写一门语言,它不可避免地将比主流脚本语言慢,因为你没有十年和一群聪明人来创建一个体面的实现。但更糟糕的是,它可能会很糟糕(设计很难,语言很复杂 -> 语言设计非常困难),并且使用起来会很麻烦(由于缺乏工具、文档、错误等)。坚持使用已建立的语言。 - user395760
更慢?不一定,那取决于你的实现方式。如果你编译你的语法到Java,我不认为它会变慢。请记住,我并不是在谈论一个“真正”的编程语言;这只是一个游戏的简单规则引擎。 领域特定语言确实有它们的功能:http://en.wikipedia.org/wiki/Domain-specific_language - Kdeveloper

0
你可以考虑使用BeanShell。在我的使用中,它基本上与原生Java一样快(因为它变成了Java),而且非常易于使用,因为它实际上就是Java,尽管仅限于Java 1.4。

0

RelProxy是一种即时Java编译器和自动热类重载器,可以像脚本语言一样执行纯Java代码。

由于Java非常快速,因此它可能是最快的脚本语言,您还可以选择使用.class文件作为已编译缓存,以避免在加载时进行编译。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接