到 Google 资讯主页   
EasyJF首页   资料   源码   软件    论坛   网站    
   使用帮助    
    该信息为本站MyRSS系统缓存内容,部分图片及附件有可能无法正常使用.easyjf.comAgile Java无关,不对该信息负责.通过http://kb.csdn.net/keyword/java//../../java/Articles/200603/e36b6135-8e75-44a6-9b7b-88a80c3454ad.html访问该信息的原始内容.
页面功能  【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   
Groovy嵌入java程序中缓存class
作者:agilejava 来源:Agile Java  发布时间:2006-03-25 00:00:00.0

今天继续Groovy,下午使用Groovy遇到了一个,写了一个大约有90行的Groovy脚本,在一个jsp里做了一下测试,执行时间竟然要到1~2秒,经过测试发现95%的时间花在了编译上面,而我们的脚本可以随时需要修改,这可不能满足需要,看了一会儿Groovy的文件,发现它把每一个脚本均是编译成一个class之后构造一个GroovyObject调用其中的run方法,这么一来,可以缓存编译后的class来避免每次编译,时间不等人啊。

现在的策略是:

1.先看缓存中有没有与脚本对应的class,有则检查脚本的修改时间是否大于缓存中所记录的时间戳,如果大于,则重新编译,之后再缓存;如前述的条件均不满足,从缓存中取class

2.检查过缓存之后,根据得到的class构造出一个GroovyObject

3.调用groovyObject.setProperty将需要的参数绑定

4.调用run方法,取得返回结果

再运行测试的jsp,5毫秒,快了很多,能够满足系统现在的要求了。

而Groovy网站上讲的例子是很简单,但在生产环境下根本不能那么用,建议有用Groovy嵌入到java的项目,最好还是把class缓存起来,提高脚本执行的效率。

晚上把这个功能介绍给同事,让他们试用一下,效果非常好。

Groovy提供了一种有效的扩展系统的功能,还要继续挖掘它的潜力。

明天去上课,周末准备写一个eclipse 插件,看时间了。

 
相关文章
 
页面功能  【加入收藏】 【推荐给朋友】 【字体:  】 【关闭】   


EasyJF.com 2006 隐私政策 使用EasyJF前必读