阅读更多

5顶
8踩

编程语言

原创新闻 性能对比:Groovy 2.0 vs. Java

2012-08-29 17:22 by 副主编 wangguo 评论(23) 有30441人浏览
Groovy 2.0已于今年6月份发布,该版本支持静态类型检测,并改进了性能,集成了JDK7 invokedynamic和类型推断,以便从JVM对动态语言的支持中获益。

而开发者也比较关心Groovy 2.0相比之前的版本性能改善了多少,以及与Java相比性能如何。开发者Oliver Plohmann做了一项测试,以对比Groovy 2.0和Java的性能。

Oliver称,在某些情况下,性能之间的差别已经变得很小,或者至少可以接受。但是,Groovy已经用于生产很长时间了,现在是时候认真考虑一下Groovy的性能了。

Oliver此次使用他唯一能在网上找的基准测试jlabgroovy,且只能测试有/无@CompileStatic注解的Groovy代码计算斐波那契数列的速度。就是说,这项测试只是对Groovy和Java的性能有一个粗略的估计,而对于想知道整体性能差异的开发者来说,这些测试数据不是非常有意义的。

测试环境

由于jlabgroovy基准测试是基于Groovy语言的,并不包含用于计算斐波那契数列的Java代码,因此Oliver将Groovy 代码移植到Java(测试代码),并进行测试。测试环境如下:

  • CPU:Intel Core2 Duo E8400 3.00 GHz
  • 操作系统:Windows 7 with Service Pack 1
  • Java版本:JDK7u6
  • IDE:Eclipse Juno + Groovy插件
  • Groovy编译器版本:2.0.0.xx-20120703-1400-e42-RELEASE
测试结果

测试结果如下(加入了Kotlin语言以作对比):


我们可以看到,使用了静态类型的Groovy,所用时间已经明显减少。静态类型和类型推断对于Groovy的性能影响不言而喻,这意味着以同样的方式进行优化的Groovy++(Groovy的静态类型增强版)也变得非常强大。

数据显示,有了@CompileStatic,Groovy大约比Java慢1-2倍,而没有@CompileStatic,大约慢3-5倍。遗憾的是,“instance ternary”和“instance if”基准测试是最慢的。因此,除非开发者想使用静态方法来构建一个伟大的作品,否则“static ternary”和“static if”测试数据对于目标是面向对象(基于实例)的大多数代码来说不是很重要。

新型JVM语言Kotlin

在上面的测试中,Oliver加上了Kotlin测试代码)的测试数据。使用的版本为Kotlin 0.1.2580。

Kotlin是一个相对比较新的、静态类型的、基于JVM的、兼容Java的编程语言。Kotlin比Java更加简洁,并支持变量类型推断、高阶函数(闭包)、构造函数、混淆(mixins)和一级委托等。Kotlin更接近Scala,并且与Java能够很好地兼容。

Kotlin目前仍处于开发阶段,官方正式版本还未发布,JetBrains(Kotlin开发商)仍然在对其代码进行优化。理想情况下,Kotlin应该和Java一样快。

结论

在Groovy 1.7、1.8版本中,Groovy大约比Java慢10-20倍(见这篇文章最后或下图)。


可见@CompileStatic的使用与否有很大的不同。这似乎表明,现在的Groovy是为了想让性能媲美Java的应用程序而准备的,而在此之前,Groovy只能让你的简历看起来好看一点。

从目前看来,Groovy的性能仍有很大的提升空间。

Via dzone
  • 大小: 64.6 KB
  • 大小: 99.5 KB
5
8
评论 共 23 条 请登录后发表评论
23 楼 allenny 2012-09-08 14:57
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

新手?外行?谢谢
22 楼 hqs7636 2012-08-30 19:40


看好 d 语言。。。。。。。。。。。


21 楼 lection.yu 2012-08-30 17:21
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

不对。。觉得自己用“肯定5倍以上“不够严谨,虽然我估计可能如果运算复杂,20倍以上都没有问题,不过我没功夫做这个测试,所以目前缺乏证据。

其实我不知道Groovy、ruby具体是什么,更没用过,我用的恰恰是比他们“快20倍”的JAVA。我还真没见过用“低效率的语言”造成硬件成本成5倍的增长的!

不要动不动就拿汇编说事,汇编是语言么?汇编不是!汇编只是CPU指令集的助记符。我玩过单片机、也入门过嵌入式——我的态度是:宁愿因为用高级语言让一个产品的成本高十几块(MCU部分),也不会用屎一样的汇编编码。

另外,一颗20元、Cortex-M3的CPU器能完成的事情,用10颗5元的C51的CPU也绝对完不成。

我有点看不懂你说什么了。你开始你自己说“一个语言被其他语言快了20倍就没有存在的必要”,意思就是groovy没有存在的必要。我反驳你,语言慢了20倍不见得就没有存在的必要,大家都追求快干嘛不去用汇编。貌似后来你又同意了我说法,宁可用慢一点的java也不去用汇编。。。请问我没有理解错吧?

你的理解还真错了,我的意思是:动不动就说一个语言比另一个语言慢XX倍是极其愚蠢的行为,有本事都去用机器码去。

好吧。我果然理解错了。。这个大楼最核心的一句话引起了我的误会。大家还是意见一样的,语言快一点如今不重要,开发效率更加重要。
20 楼 peak 2012-08-30 16:48
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

不对。。觉得自己用“肯定5倍以上“不够严谨,虽然我估计可能如果运算复杂,20倍以上都没有问题,不过我没功夫做这个测试,所以目前缺乏证据。

其实我不知道Groovy、ruby具体是什么,更没用过,我用的恰恰是比他们“快20倍”的JAVA。我还真没见过用“低效率的语言”造成硬件成本成5倍的增长的!

不要动不动就拿汇编说事,汇编是语言么?汇编不是!汇编只是CPU指令集的助记符。我玩过单片机、也入门过嵌入式——我的态度是:宁愿因为用高级语言让一个产品的成本高十几块(MCU部分),也不会用屎一样的汇编编码。

另外,一颗20元、Cortex-M3的CPU器能完成的事情,用10颗5元的C51的CPU也绝对完不成。

我有点看不懂你说什么了。你开始你自己说“一个语言被其他语言快了20倍就没有存在的必要”,意思就是groovy没有存在的必要。我反驳你,语言慢了20倍不见得就没有存在的必要,大家都追求快干嘛不去用汇编。貌似后来你又同意了我说法,宁可用慢一点的java也不去用汇编。。。请问我没有理解错吧?

你的理解还真错了,我的意思是:动不动就说一个语言比另一个语言慢XX倍是极其愚蠢的行为,有本事都去用机器码去。

身为一个普通的程序员,对语言的执行速度、效率快慢没什么感觉,对开发的速度、易用性、可读性等才是应该去关心的
19 楼 if(i!=我){} 2012-08-30 15:08
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

不对。。觉得自己用“肯定5倍以上“不够严谨,虽然我估计可能如果运算复杂,20倍以上都没有问题,不过我没功夫做这个测试,所以目前缺乏证据。

其实我不知道Groovy、ruby具体是什么,更没用过,我用的恰恰是比他们“快20倍”的JAVA。我还真没见过用“低效率的语言”造成硬件成本成5倍的增长的!

不要动不动就拿汇编说事,汇编是语言么?汇编不是!汇编只是CPU指令集的助记符。我玩过单片机、也入门过嵌入式——我的态度是:宁愿因为用高级语言让一个产品的成本高十几块(MCU部分),也不会用屎一样的汇编编码。

另外,一颗20元、Cortex-M3的CPU器能完成的事情,用10颗5元的C51的CPU也绝对完不成。

我有点看不懂你说什么了。你开始你自己说“一个语言被其他语言快了20倍就没有存在的必要”,意思就是groovy没有存在的必要。我反驳你,语言慢了20倍不见得就没有存在的必要,大家都追求快干嘛不去用汇编。貌似后来你又同意了我说法,宁可用慢一点的java也不去用汇编。。。请问我没有理解错吧?

你的理解还真错了,我的意思是:动不动就说一个语言比另一个语言慢XX倍是极其愚蠢的行为,有本事都去用机器码去。
18 楼 hqs7636 2012-08-30 15:07
i7cpu 5块钱一颗
17 楼 lection.yu 2012-08-30 14:51
if(i!=我){} 写道
lection.yu 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

不对。。觉得自己用“肯定5倍以上“不够严谨,虽然我估计可能如果运算复杂,20倍以上都没有问题,不过我没功夫做这个测试,所以目前缺乏证据。

其实我不知道Groovy、ruby具体是什么,更没用过,我用的恰恰是比他们“快20倍”的JAVA。我还真没见过用“低效率的语言”造成硬件成本成5倍的增长的!

不要动不动就拿汇编说事,汇编是语言么?汇编不是!汇编只是CPU指令集的助记符。我玩过单片机、也入门过嵌入式——我的态度是:宁愿因为用高级语言让一个产品的成本高十几块(MCU部分),也不会用屎一样的汇编编码。

另外,一颗20元、Cortex-M3的CPU器能完成的事情,用10颗5元的C51的CPU也绝对完不成。

我有点看不懂你说什么了。你开始你自己说“一个语言被其他语言快了20倍就没有存在的必要”,意思就是groovy没有存在的必要。我反驳你,语言慢了20倍不见得就没有存在的必要,大家都追求快干嘛不去用汇编。貌似后来你又同意了我说法,宁可用慢一点的java也不去用汇编。。。请问我没有理解错吧?
16 楼 解未知数 2012-08-30 14:06
groovy是什么? java是什么?
15 楼 if(i!=我){} 2012-08-30 13:28
lection.yu 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

不对。。觉得自己用“肯定5倍以上“不够严谨,虽然我估计可能如果运算复杂,20倍以上都没有问题,不过我没功夫做这个测试,所以目前缺乏证据。

其实我不知道Groovy、ruby具体是什么,更没用过,我用的恰恰是比他们“快20倍”的JAVA。我还真没见过用“低效率的语言”造成硬件成本成5倍的增长的!

不要动不动就拿汇编说事,汇编是语言么?汇编不是!汇编只是CPU指令集的助记符。我玩过单片机、也入门过嵌入式——我的态度是:宁愿因为用高级语言让一个产品的成本高十几块(MCU部分),也不会用屎一样的汇编编码。

另外,一颗20元、Cortex-M3的CPU器能完成的事情,用10颗5元的C51的CPU也绝对完不成。
14 楼 bitray 2012-08-30 13:23
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

“同样的web服务,用同样的架构”,你如果满足这两条,我相信你用汇编写出来的绝对比Groovy慢百倍!

不错,机器码算1+1=2只要一两条指令,时间纳秒级;但是我要的是在网页上提交,然后服务器计算,再返回给浏览器,要求安全性、易用性、可扩展、可监测等等完全一致!

要求安全性、易用性、可扩展、可监测等等完全一致的话,那最初设计Groovy和java是处理同一类问题的嘛?c++写web程序的开发周期要长多了把,你说的几个指标他们根本达不到
13 楼 if(i!=我){} 2012-08-30 13:13
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

“同样的web服务,用同样的架构”,你如果满足这两条,我相信你用汇编写出来的绝对比Groovy慢百倍!

不错,机器码算1+1=2只要一两条指令,时间纳秒级;但是我要的是在网页上提交,然后服务器计算,再返回给浏览器,要求安全性、易用性、可扩展、可监测等等完全一致!
12 楼 jjx 2012-08-30 11:30
比groovy++的优化要差多了,不过groovy++停止发展了,忘了从那里看到,好像是groovy团队的不开放,不友好导致的
11 楼 lection.yu 2012-08-30 09:51
lection.yu 写道
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。

不对。。觉得自己用“肯定5倍以上“不够严谨,虽然我估计可能如果运算复杂,20倍以上都没有问题,不过我没功夫做这个测试,所以目前缺乏证据。
10 楼 lection.yu 2012-08-30 09:48
if(i!=我){} 写道
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!

你早这么开窍就好了。Groovy比Java慢,肯定功能上增加,何必因为慢5倍就被淘汰。。而且用汇编编一个web服务,有时间编写,除去数据库的因素,肯定比ruby快5倍以上。只是开发速度慢,没有平台移植能力,需求变更成本太高而已。
9 楼 if(i!=我){} 2012-08-30 09:35
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

你用汇编和ruby编一个同样的web服务,用同样的架构,给我跑出来高5倍的速度看看?

运算跑分高有个P用,等架构复杂到一定程度,都差不多一个样

再说什么语言到最后都是机器码,而写编译器的绝对不是傻子!
8 楼 iwangxiaodong 2012-08-30 09:34
满喜欢Groovy的,但还是觉得原生JAVA舒服,可以浅尝辄止下:Groovy开发精通
7 楼 shibingli 2012-08-30 09:21
Scala++
6 楼 zuoming99 2012-08-30 09:04
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

+1
5 楼 bitray 2012-08-30 09:01
lection.yu 写道
if(i!=我){} 写道
笑了,任何一个语言,被任何另外的一个语言快5倍,这个语言就没存在的必要!还20倍!!!

不知道哪里可笑了。你觉得ruby和汇编比起来,要慢多少?至少有数据表明的,Groovy和Ruby速度差不多。按你的说法,大部分动态语言都没有必要存在了。全比汇编慢5倍以上。

同问一楼,哪里可笑?
4 楼 quhxuxm.quh 2012-08-30 07:26
Groovy是跑在JDK上的,保证比原生的Java程序慢啊,这还用想吗?再说用Groovy又不是用来和Java比快慢的,作为脚本语言,他有很多特性用起来Java方便得多,语法结构也比Python之类的好,应该还是很有发展前景的

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • groovy 慢_性能对比:Groovy 2.0 vs. Java

    Java 7 vs Groovy 2.1性能比较自从我与Grails上一次接触以来,我已经有两年没有使用Groovy了。 我陷入(硬)核心企业Java中,并且在后台遇到了一些性能方面的问题。 我几乎错过了学习Spock的机会,但是幸运的是, 华沙...

  • Aviator和Groovy在表达式执行上的性能测试

    工具 执行原理 优点 缺点 性能建议 ...通过ASM框架将表达式直接翻译成对应的 java 字节码执行,整个过程最多扫两趟(开启执行优先模式,如果是编译优先模式下就一趟) 编译字节码是通过ASM框架在指令层次

  • 怒肝3W字Java学习路线!从入门到封神全包了(建议收藏)

    大家好!我是一航!...这些其实是一个非常普遍且正常的现象,会焦虑的人,往往都是对自己要求比较严苛的好同志;如果躺平了,何来焦虑可言! 鉴于其中关于学习方向,学习路线的问题,其实网络如此发达.

  • groovy 2.5.4_Groovy 2.0的新功能是什么?

    groovy 2.5.4 新发布的Groovy 2.0通过静态类型检查和静态编译为该语言带来了关键的静态功能,采用了与JDK 7相关的改进,以及Project Coin语法增强功能和对新的“调用动态” JVM指令的支持,并且比以前更加模块化 。...

  • groovy 2.5.4_Java 7 vs Groovy 2.1性能比较

    我陷入(硬)核心企业Java中,但在后台遇到了一些性能方面的问题。 我几乎错过了学习Spock的机会,但是幸运的是, 华沙Java用户组帮助我摆脱了一些旧系统,恢复了正常的自我开发。 实际上,我希望Spock或Geb之类的...

  • groovy 慢_Groovy系列-groovy比起Java--有哪些地方写起来更舒服?

    groovy比起java-有哪些地方写起来更舒服java发展缓慢,语法落后冗余说起java,其实java挺好的,java现在的性能也不错,但是,java的语法显然比较落后,而且冗余,getter/setter之类的,5的泛型 for each,autobox,7的钻石语法...

  • Java 7 vs Groovy 2.1性能比较

    我陷入(硬)核心企业Java中,并且在后台遇到了一些性能方面的问题。 我几乎错过了学习Spock的机会,但是幸运的是, 华沙Java用户组帮助我摆脱了一些旧系统,恢复了正常的自我开发。 实际上,我希望Spock或Geb之类...

  • 工作中使用到的单词(软件开发)

    ■2021/01/01以降整理 ■2021/02/22以降整理 ■匿名内部类,lambda表达式,JDK7新特性,等等java相关 ■2021/03/18以降整理 Linux系统性能 相关 ■其他各种单词,知识(linux awk sed) ■网络相关 ■2021/03/29以降...

  • http://www.open-open.com/ java 开源资料 介绍

    Java开源大全v/:* { BEHAVIOR: url(#default#VML)}function SideBarToggle() { if (block == $(sidebar).style.display || ==$(sidebar).style.display) { $(sidebar).style.display = none;

  • groovy 规则引擎 java_Drools, IKExpression, Aviator和Groovy字符串表达式求值比较

    Gradle脚本是基于一种JVM语言 -- Groovy,再加上DSL(领域特定语言)语言组成的。因为eSOC项目的一个重要功能就是规则引擎,规则引擎的主要功能就是关联分析。规则引擎的最基本的功能就是计算表达的值(表达式是规则中...

  • mvel 调用java_java MVEL2/Spring EL表达式、直接调用、反射性能实测

    importjava.io.Serializable;importjava.lang.reflect.Field;importjava.util.HashMap;importjava.util.Map;importorg.mvel2.MVEL;/*** Id 模型*/public class Id implementsSerializable {privateLong id;public...

  • 工作中使用到的单词(软件开发)_2023_0316备份

    目录■Java学习汇总■常用链接■2020/03/15 (最初...2021/01/01以降整理■2021/02/22以降整理■匿名内部类,lambda表达式,JDK7新特性,等等java相关■2021/03/18以降整理Linux系统性能 相关■其他各种单词,知识(l

  • Java 下一代: Groovy、Scala 和 Clojure

    Groovy 2.0 新增了一个 @TypeChecked注释,使您能够在类或方法级别上制定严格类型检查特别决策。清单 4 举例说明了这个注释: 清单 4. 类型检查与注释 @TypeChecked @Test void type_checking() {...

  • java中只想groovy_Groovy 相对 Java 的一些新玩意

    Groovy 是轻量级的 Java方法,闭包中 return 语句是可选的,如果没有 return,则默认返回方法、闭包的最后一条语句的值方法和类默认的修饰符都是 publicGroovy 不强迫我们捕获自己不关系的异常,这些异常会被传递给...

  • Java数据审计工具:Envers and JaVers比较

    在Java世界中,有两种数据审计工具:Envers和JaVers。 Envers已经存在了很长时间,它被认为是主流。 JaVers提供全新的方法和技术独立性。 如果您考虑哪种工具更适合您的项目,本文是一个很好的起点。本文分为三个...

  • Java 开发 2.0: 现实世界中的 Redis

    在本期的 Java 开发 2.0 中,Andrew 尝试将 Redis 添加(通过基于 Java™ 的变体 Jedis 方法)到他自己的基于定位的移动应用程序。了解如何将 Redis 作为一个简单数据存储来使用,然后尝试再利用

  • Java的前世今生

    搞Java 6年了,一直想对Java有一个系统的认识,今天终于做了这件事。Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并...

  • spring-boot框架基础

    ======================1、零基础快速入门SpringBoot2.0 5节课 =========================== 1、SpringBoot2.x课程全套介绍和高手系列知识点 简介:介绍SpringBoot2.x课程大纲章节 java基础,jdk环境,maven基础...

  • 【Java工具类】学会MVEL2.0,表达式解析再不怕

    MVEL为 `MVFLEX Expression Language`(MVFLEX表达式语言)的缩写,是一种基于`Java语法`,但又有着显著不同的表达式语言。与Java不同的是,MVEL是一种`动态/静态可嵌入`的表达式语言,意味着源代码中不需要`类型...

  • Adroid 收集

    Android AOP之字节码插桩详解 文章从AOP的概念出发,介绍了Android中AOP的实现方式及几种实现对比的对比,之后介绍了AOP的一些使用场景,然后开始重点叙述了实现字节码插桩的技术细节,文章比较长,而且有些知识...

Global site tag (gtag.js) - Google Analytics