`
philix
  • 浏览: 80648 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

放弃groovy这个玩具(关于scala, groovy, jruby,jython,等动态语言)

阅读更多

http://hi.baidu.com/knowise/blog/item/cfbba9246f91961b4c088dcb.html

 

放弃groovy这个玩具 ,因为它只是一个玩具, 无法应用于实际.

之前我用groovy写了一个网站, deploy到tomcat上.

运行一段时间之后,tomcat就开始失控,内存占用大的出奇 , 最后导致服务器死机!

为什么会这样呢? 我的理解->

原因大概在于groovy为了实现动态类型, 大量使用了反射,

并且在很大程度上侵入了java基础类 .

加上groovy现在的开发者水平不高,

导致程序的表现往往不合预期 , 内存的管理上存在问题!

即时GC不出问题时,groovy编译出来的类也需要消耗更多的内存 ,

多到实在无法使用, 甚至限制代码规模!

如果你在groovy项目用了许多类(比如通过.jar包来引入),并在代码中import并使用, 你就会发现一般的机器内存显然不足了.

因为groovy会对几乎所有用到的类,都做一遍侵入性改造 ,以使它们表现得动态 !

最终的结果就是, groovy号称与java无缝集成,却恰恰因为无缝集成而侵入了java本身, 使得整个系统变得混乱, 甚至不可用 !

结果是: groovy 中看,不中用! 

所以另一种:可以编译到.class,并且使用java 类, 但不侵入java本身的动态语言,可能是更好的选择!

保持一定的层次, 避免太紧的耦合, 看来是非常必要的.

不然,出了问题,如何确定问题的原因呢?

#

分享到:
评论
1 楼 flashing 2012-02-12  
groovy这么差劲吗。。。
不过jvm上的全动态的确有很多问题。。。

相关推荐

    请放弃 Jruby和Jython 而选择 Groovy

    对于Jruby、Jython和Groovy三种动态语言,长期以来很多人犹豫于如何选择它们。本文提出一个非常有力的例证证明:如果你是一个基于Java虚拟机的开发者,那么请放弃Jruby和Jython。

    java调用脚本语言笔记(jython,jruby,groovy)

    NULL 博文链接:https://yinxvxv.iteye.com/blog/811328

    JGSK, Java,Groovy,Scala,Kotlin 四种语言的特点对比.zip

    JGSK, Java,Groovy,Scala,Kotlin 四种语言的特点对比

    scala erlang groovy python 原理 比较 分析

    scala erlang groovy python 原理 比较 分析

    Groovy vs_ JRuby Presentation.ppt

    Groovy vs_ JRuby Presentation

    java 动态脚本语言 精通 Groovy

    java 动态脚本语言 精通 Groovy

    精通 Groovy--下一代开发语言

    Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...

    Java调用Groovy,实时动态加载数据库groovy脚本

    Java调用Groovy,实时动态加载数据库groovy脚本,java读取mongoDB的groovy脚本,加载实时运行,热部署

    Groovy DSL

    Groovy 是基于Java的脚本语言。是Java语言扩展,因此可以与Java语言互相调用。在所有基于JVM虚拟机的语言中只有Scala可以媲美。使用Groovy可以快速灵活完成文本处理,数据库访问,XML处理等常见任务。研究表明,使用...

    Groovy入门经典.pdf

    Groovy入门经典是一个唯一能够扩展Java平台的脚本语言,内容全面详尽,浅显易懂,易于选择性阅读。可以作为对Groovy语言感兴趣的计算机软件开发人员的参考书。需要的朋友们就赶紧来下载试试吧!  Groovy提供类似...

    scala中文教程(java 平台开发语言 scala 简单教程)

    Martin Odersky 用他定义的匹萨语言给了 Java世界一个很大的冲击。尽管匹萨本身没有流行 但它展现了当把面向对象和函数型语言两种风格,技术地且很有品地混搭在一起时,就形成了 自然和强有力的组合。匹萨的设计成为...

    groovy语言对应插件

    用于soapui中,groovy语言开发的插件之一用于soapui中,groovy语言开发的插件之一

    Groovy v2.4.13官方版

     Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 ...

    AndroidDemoIn4Languages, 在Android开发中,比较 Java Groovy Scala Kotlin.zip

    AndroidDemoIn4Languages, 在Android开发中,比较 Java Groovy Scala Kotlin 中文版 日本語 AndroidDemoIn4Languages为了了解Android开发的更好语言,用 Java 。Groovy 。Scala 和Kotlin编写了一个简单的Android应用...

    groovy-3.0.9-API文档-中文版.zip

    赠送jar包:groovy-3.0.9.jar; 赠送原API文档:groovy-3.0.9-javadoc.jar; 赠送源代码:groovy-3.0.9-sources.jar; 赠送Maven依赖信息文件:groovy-3.0.9.pom; 包含翻译后的API文档:groovy-3.0.9-javadoc-API...

    groovy 最新 学习 动态

    groovy 敏捷 开发 动态 语言 急速 web 应用 开发

    Groovy入门经典

    由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发中小型规模的应用程序。, 相对于Java语言,Groovy语言的表述性更强,抽象程度更高。它使得应用程序开发更加快捷,提升了程序员生产力。...

    [Groovy] Making Java Groovy 英文版

    Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    groovy-scala-demo:一个演示如何将Groovy,Gradle,Spock和Scala组合到单个项目中的演示

    #Groovy和Scala演示 使用Groovy,Gradle,Spock来测试驱动Scala解决方案。 使用Gradle作为构建系统。 Spock和Groovy进行数据驱动测试 Scala使用一些漂亮的技巧来实现该解决方案。 练习:FizzBu​​zz ###步骤...

Global site tag (gtag.js) - Google Analytics