任何一个系统在被评价的时候,性能总是会被谈论到。
GRAILS作为ROR的GROOVY移植,在性能方面也是会和ROR放在一起来做比较。和ROR一样,GROOVY在开发环境下运行是相当缓慢的。所以GRAILS官方在性能优化的FAQ里面明确提到需要在运行开发环境时通过设置JVM的内存堆的参数(-Xmx512M)来提高性能。
可见,只要提高可用的内存数量,就可以大大提升性能。由于在开发环境中,GRAILS默认使用hsqldb的内存数据库,系统对内存的需求就更为巨大。尤其在表的字段和数量随着应用的复杂程度而不断增加的时候,系统的运行速度会变慢到无可忍受的地步。
所以,从性能的方面而言,如果让系统在开发的时候速度不必让开发人员抓狂的话,从开始就应该放弃使用内存数据库,使用实际的数据库。
及早的使用实际数据库对于GRAILS下系统的开发还有其它的好处。首先,通过对实际数据库的观察,我们可以很清楚的判断程序运行的情况。另外,如果我们是让GRAILS系统在运行的时候创建数据库,我们可以通过数据库的观察确定你使用的domain名称是不是能够正常地驱动数据库的创建。
从语言实现而言,由于GRAILS本身是通过把所有的程序经过编译成java class之后在JVM上运行的,因此,它和实现相同功能的java应用的性能差距不大。唯一的差距在于由于GRAILS本身的框架而增加的一层间接导致的性能上的少许损失。但是,这些损失就和你使用spring框架或者struts框架那样大量使用reflection而导致的性能损失相类似,基本可以忽略。相对于正宗的动态语言Ruby而言,GROOVY的性能显然更令人满意。因为实际上它把动态特性已经在编译的时候一次处理完成了。从C++的观点而言,就是通过一次静态的编译性能损失换取了大量的动态性能。一家之言
。
分享到:
相关推荐
9.7 关于ajax性能的讨论 9.8 本章小结 第10章 服务(services)和作业(jobs) 10.1 服务基础知识 10.1.1 事务 10.1.2 服务和依赖注入 10.2 服务实战 10.2.1 示例a——扩展搜索...
grails-perf-testapps 用于性能测试的简单 Grails 应用程序集合
11.4 对GORM进行性能优化 146 11.4.1 设置抓取模式 147 11.4.2 使用二级缓存 147 11.5 使用GRAG工具生成Domain 151 11.6 本章小结 154 第12章 与Spring整合 155 12.1 依赖注入与Spring容器基础 155 12.1.1 依赖注入...
研究应用程序的性能是提高其可用性的重要一步。 通过Profiler插件,可以轻松收集应用程序多个方面的时序信息: 要求 控制器动作 服务方式 视图生成 安装 grails install-plugin profiler 如何使用它 插件安装完成...
Grails Hibernate Metrics插件Grails插件使用Hibernate Statistics API报告一些简单的应用程序性能指标。 该插件是在引入的-演示视频可在。 请注意,此插件尚处于初期阶段,应视为实验性的。 在这一点上,我建议仅将...
脚本通过上下文applicationcontext获取被测试应用bean,从而可以进行...目前该方式主要运用到性能平台脚本搭建、代码深度测试、接口测试、白盒测试等多方面。对于测试比较深的应用,最为适用。支持Java、groovy脚本。
获取打包为 war 文件的 OpenTele-server 和 OpenTele-citizen-server 的副本(在各自的项目中运行grails war )。 运行vagrant up vagrant up完成后,您可以运行vagrant ssh -c 'tail -f /srv/tomcat/opentele-...
如果您觉得Grails的想法很好,您不必转向它,Rose可以给您这种感觉,同时基于您对Java的熟悉,您又能更好地控制Rose。我们希望Rose对各种技术的整合和规范,能使您摆脱犹豫,摆脱选择的困难,规避没有经验带来的开发...
Clojure 与 Scala 的高性能 Web API Clojure 和 Scala 实现 Web API 的比较。 表中的内容 TL; 博士 Scala 和 Clojure 在 JVM 上运行并竞争 Java 的替代品。 Clojure 获胜是因为: Scala 函数式 + 面向对象 + 演员 ...
索引元列表图形用户界面图形编程语言不可知论的算法和数据结构许可理论计算机科学操作系统数据库网络编译器设计编程范例并行编程正则表达式软件构架开源生态系统信息检索数据挖掘机器学习数学元胞自动机其他Web性能...
经过测试的功能完备的Spring 3.2参考应用程序,具有JPA持久性,REST Level-3资源,异步处理,作业,安全性,单元,模拟,集成,功能,其余客户端存根,性能测试以及许多最佳实践,聚集了在MVC / Spring / Grails网络...
想用groovy替代SSH中的action层(其实service,module什么的都可以)主要也是那段时间动态语言风头比较劲,还有就是groovy的语法糖,不像java那么死板,之前也没想着分享,现在挂上来了(感觉可以替代Grails的)。...