上一篇介绍了各个脚本语言实现eval的功能代码,其实功能实现了进一步就需要考虑他的性能了。我做了个很简单的性能测试。同时也参考了网上的部分测试结果。
首先先来看下网上有关java脚本测试的文章:
1:JAVA基础:四种Java脚本语言之评测
原文地址:http://www.gzu521.com/campus/article/it/200611/121095.htm
2:MVEL,Groovy,OGNL等脚本语言的性能测试结果
原文地址:http://www.iteye.com/topic/361794
我做的测试主要是针对eval功能的。测试代码比较简单,就是执行一个表达式10万次看下执行时间。
测试代码我就不贴了,其实就是一个for循环而已,先说下测试结果,最终是mvel
胜出,在预先编译的情况下,执行一个稍微复杂的表达式只需要200多毫秒,如果不预先编译的话是90多秒,其实在这次测试中我最希望是groovy胜出,不过他很令人失望,也许是我的测试方法不对,如果有同学知道可以提高groovy的eval执行性能的方法请告诉我,非常感谢!!!
(顺便说下,其实这篇文章想在上篇文章里一起写完的,结果JE的编辑器真难用啊 ,害我贴了代码或图保存后再编辑的话就不能往下写了,哎算了将就比以前好用)
分享到:
相关推荐
虽然Java调用脚本语言提供了很大的灵活性,但也有性能上的考量。因为每次调用都需要解释执行,所以在性能敏感的场景下,可能需要预编译脚本或者寻找其他优化策略。 ### 结论 Java调用Jython、JRuby和Groovy提供了...
自JDK 6.0起,Java脚本引擎成为Java SE的一部分,它的出现极大地扩展了Java语言的功能,使之不再局限于编译型语言的范畴,而是能够在运行时动态地执行脚本代码。 Java脚本引擎的关键优势在于它提供了一套标准化的...
Java是一种广泛使用的面向对象的编程语言,而Perl则是一种功能强大的脚本语言,常用于文本处理和系统管理任务。在某些场景下,我们可能需要在Java应用程序中调用Perl脚本来执行特定的功能。JERL(Java-Embedding for...
Rhino的核心是ECMAScript的实现,这是一种标准化的脚本语言,JavaScript就是基于此标准的一种方言。ECMAScript提供了动态类型、函数式编程和原型继承等特性,使得Rhino成为Java开发者在服务器端或嵌入式环境执行...
在Java中,`eval`功能通常不直接提供,因为与脚本语言相比,Java是一种静态类型的语言,强调安全和性能。然而,通过使用Java的反射API和动态编译技术,可以实现类似的功能。动态编译是指在程序运行时将源代码编译成...
2. `jsr223`接口:这个接口为脚本语言提供了Java Scripting API,使得Java程序能够调用JavaScript函数或对象就像它们是Java方法一样。 Nashorn引擎的一个关键特性是它可以与Java对象互操作。Java对象可以通过`...
然而,在开发大型应用时,Java由于其良好的性能和跨平台特性更为常用。因此,如何在Java环境中调用R语言进行数据处理或算法实现成为了一个重要的需求。 #### 二、Java调用R语言的方式 目前,Java调用R语言主要通过...
### Java调用R语言实现数据挖掘的关键知识点 #### 一、使用R开发数据挖掘平台 在数据科学领域,R语言以其强大的统计分析能力和丰富的库支持而受到广泛欢迎。结合Java的强大功能,可以构建高效的数据挖掘平台。为了...
Java SE 6对脚本语言的支持极大地扩展了Java的生态系统,使得开发者可以利用JavaScript、Python、Ruby等脚本语言的优点,同时保持Java的稳定性和性能。这一特性对于快速原型开发、自动化测试以及需要动态性的复杂...
这主要得益于Oracle公司在Java 6版本引入的一个新特性——Java Scripting API(JSR 223),它允许Java程序执行多种脚本语言,包括JavaScript。 ### 1. Java Scripting API (JSR 223) JSR 223是Java的一个标准接口...
标题中的“Java如何与脚本(JavaScript)之间相互调用二”表明了本文将深入探讨在Java应用程序中如何与JavaScript代码进行交互,这通常涉及到Java的脚本引擎,如Nashorn或Rhino。这些引擎允许Java代码执行JavaScript...
1. **脚本语言介绍**:简述JavaScript、Groovy、JRuby等流行的Java脚本语言,比较它们的特性和用途。 2. **Java Scripting API**:详细介绍JSR 223,包括`ScriptEngine`、`ScriptEngineManager`和`ScriptContext`的...
Java是一种广泛使用的编程语言,以其跨平台性和丰富的类库闻名。在Java中运行Perl脚本是一种常见的需求,特别是在处理文本操作、正则表达式或系统级任务时,Perl的灵活性和强大功能吸引了许多开发者。JERL(Java ...
在Java编程语言中,`eval()`函数通常与脚本语言如JavaScript关联,它允许执行一个字符串作为代码。然而,Java自身并不直接支持这样的功能。在Java中,如果你需要动态执行代码,你可能需要借助于Java的反射API或者...
Java与R语言通信主要涉及到两种方式:通过rJava和Rserve。rJava是利用JNI(Java Native Interface)实现R与Java的本地交互,但因为实际应用中常常需要远程调用R脚本,所以rJava在远程通信场景下不常用。Rserve则是一...
在Java环境中运行Perl脚本可能对开发者来说是一个挑战,因为Java和Perl是两种不同的编程语言,它们有自己的执行环境。然而,有一些工具和库可以帮助我们实现这个目标。JERL(Java-Embedded Ruby and Perl Library)...
ScriptEngine接口提供了执行脚本和与脚本交互的能力,支持多种脚本语言,包括JavaScript。 以下是实现Java调用JavaScript代码的基本步骤: 1. 引入ScriptEngineManager:首先,我们需要创建一个...
JavaScript(JS)是一种广泛用于网页和网络应用的脚本语言,它主要负责处理客户端的交互逻辑。在开发过程中,为了提高网页的加载速度和优化用户体验,开发者常常会使用压缩工具来减小JS文件的大小。"js eval 压缩...