我感兴趣的是测试groovy ++的性能提升而不是普通的groovy。 我找到了要测试的脚本
class Chain
{
def size
def first
def init(siz)
{
def last
size = siz
for(def i = 0 ; i < siz ; i++)
{
def current = new Person()
current.count = i
if (i == 0) first = current
if (last != null)
{
last.next = current
}
current.prev = last
last = current
}
first.prev = last
last.next = first
}
def kill(nth)
{
def current = first
def shout = 1
while(current.next != current)
{
shout = current.shout(shout,nth)
current = current.next
}
first = current
}
}
class Person
{
def count
def prev
def next
def shout(shout,deadif)
{
if (shout < deadif)
{
return (shout + 1)
}
prev.next = next
next.prev = prev
return 1
}
}
def main(args)
{
println "Starting"
def ITER = 100000
def start = System.nanoTime()
for(def i = 0 ; i < ITER ; i++)
{
def chain = new Chain()
chain.init(40)
chain.kill(3)
}
def end = System.nanoTime()
println "Total time = " + ((end - start)/(ITER * 1000)) + " microseconds"
}
有效。但是,如果我尝试添加
@Typed
在第一堂课名称和运行之前我收到错误:
#groovy groovy.groovy
org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
/home/melco/test/groovy.groovy: 18: Cannot find property next of class Object
@ line 18, column 22.
last.next = current
^
1 error
#groovy -version
Groovy版本:1.7.5 JVM:1.6.0_18
任何想法为什么?
答案 0 :(得分:0)
要享受静态类型编辑,您需要提供至少一些类型信息。
通常,定义属性类型(下一步,在您的情况下为prev)和方法参数类型就足够了。
答案 1 :(得分:0)
您声明的所有变量都是java.lang.Object类型(在本例中为grovy.lang.Object)。所以他们没有“下一步”等方法。
尝试使用Person current = new Person()
和Cain current = first
等