`
kong6001
  • 浏览: 141331 次
  • 性别: Icon_minigender_1
  • 来自: 广东广州
社区版块
存档分类
最新评论

JRuby的性能优化(update)

    博客分类:
  • Ruby
阅读更多

 越来越觉的JRuby是个很有前途的项目,结合Ruby的性感语法和java极其丰富的类库,况且有团队持续不断地修正bug、改进性能,这样的玩意完全有成为“少男杀手”的潜质。JRuby wiki上列出了性能优化的四条建议:
1、调优编译器,JRuby早就弃暗投明跟随XRuby走上了编译这条牛B的道路,将Ruby Script编译成字节码,因此这个环节是断断不能忽略的。
两种编译方式:
AOT模式:直接生成class文件,脱了Ruby这层皮,咱就是人见人“爱”的java了。
JIT模式:充分利用成熟的jit技术,咱不全脱,朦胧美才是真的美。默认从0.9.9版本开始就是开启的,关闭的话(要我说还不如全脱)

<!---->jruby -J-Djruby.jit.enabled=false



2、关闭ObjectSpace
ObjectSpace是Ruby用来操作所有运行时对象的模块,这个功能相当牛x。这个的实现在c ruby里是比较容易的,但是对于JRuby代价就比较昂贵了,其实就大部分情况下你基本用不到这个东东,那么最好就是关闭它,JRuby提供了

<!---->jruby -J-Djruby.objectspace.enabled=false

选项来关闭它。

3、开启线程池
我们知道,在c ruby中的线程是绿色的轻量级线程,因此运行时就动不动开个百来十个“线程”跑一跑充下款爷;然而在JRuby中,线程的实现那可是实打实的本地线程(也就是Ruby线程与java线程一比一),你这么动不动上百个线程那不慢才怪了。因此JRuby提供了线程池选项,运行时尽可能地满足你的要求开线程,但是当短命的Ruby线程重复创建的时候,这些线程将被复用,这在大多数情况下能提高性能表现,特别是在每次调用都启动一个线程的情况下。不过具体效果还是要测试的实际数据说话。

<!---->jruby -J-Djruby.thread.pooling=true



4、使用Java "server"模式虚拟机,地球淫都知道

<!---->jruby -J-server myscript.rb


5、尽量使用最新的jdk,在我的测试中,jdk6跑jruby是效率最高的

分享到:
评论

相关推荐

    jdk-6u45-windows-i586

    1. **增强的性能**:JDK 6 Update 45对JVM(Java Virtual Machine)进行了优化,提高了程序运行效率,特别是对于服务器端的应用,性能提升显著。 2. **改进的Garbage Collection**:在垃圾回收机制上做了优化,降低...

    jdk-6u31-windows-i586

    2. **性能优化**:JDK 6的每个更新都会带来一定的性能提升,包括更快的编译速度、内存使用优化以及垃圾回收算法的改进。 3. **API扩展**:新增和改进了一些API,比如NIO.2(New I/O 2)提供更强大的文件系统操作...

    Linux版 jdk8纯净版

    在Linux环境下,JDK 8提供了对Java编程语言的强大支持,包括编译器、调试工具、性能优化和丰富的API库。本篇将详细解析"Linux版JDK8纯净版"的相关知识点。 1. **下载与安装** - **文件名**:`jdk-8u152-v-linux-x...

    jdk-7u17-windows-x64.zip

    总结来说,"jdk-7u17-windows-x64.zip"是一个针对64位Windows系统的JDK 1.7 Update 17安装包,它包含了Java开发和运行所需的所有组件,具备丰富的语言特性、性能优化以及对动态语言的支持。虽然Java 7已不再是最新的...

    server-jre-7u80-solaris-sparcv9.tar.gz

    总之,"server-jre-7u80-solaris-sparcv9.tar.gz"是专为Solaris SPARCv9平台设计的Java 7服务器JRE,包含了运行和开发Java应用所需的关键组件,其部署和使用需要考虑系统兼容性、性能优化和安全维护等多个方面。

    jdk11.0.9-Linux tar.gz最新版

    这个版本的JDK包含了重要的更新、性能优化和安全修复,旨在提升开发者的生产力和应用的稳定性。 在描述中提到的`jdk-11.0.9_linux-x64_bin.tar.gz`是一个压缩文件,它采用tar归档和gzip压缩格式,这是在Linux环境下...

    jdk-7u10-windows

    9. **改进的Swing和JavaFX**:Java 7对Swing组件进行了性能优化,同时开始引入JavaFX 2.0作为下一代富客户端平台。 **标签“jdk1.7-demos”** 暗示这个压缩包可能包含了Java 7的演示程序和示例代码,这对于初学者和...

    jdk-7u25-windows-x64.zip

    **Java Development Kit (JDK) 7 Update ...JDK 7的更新25版修复了一些已知的bug,并提供了一些性能优化,增强了开发者的体验。无论是新手还是经验丰富的Java开发者,都应该熟悉这些特性,以便更好地利用Java 7的潜力。

    jdk1.6版本

    1. **增强的性能**:JDK 1.6,也被称为Update 115,进行了大量的性能优化,包括垃圾收集器改进、JIT(Just-In-Time)编译器的升级,使得程序运行更快,内存管理更高效。 2. **改进的内存管理**:这个版本引入了G1...

    windows 64位 jdk1.7

    Windows 64位版本的JDK1.7,即Java 7 Update,是为了在64位Windows操作系统上优化Java应用程序性能而设计的。在这个版本中,Oracle公司引入了许多新特性、改进和优化,旨在提高开发效率和应用程序性能。 1. **改进...

    jdk1.6 64位 linux

    **Java Development Kit (JDK) 1.6 for 64-...它带来了诸多性能优化和新特性,使得开发人员能够利用64位系统的优势,创建高效、稳定的Java应用程序。通过正确安装和配置,用户可以充分利用这个版本的JDK进行开发工作。

    jdk-7u80-windows-x64

    2. **字符串内联(String Inlining)**:优化了字符串操作,提高了性能,尤其是在字符串连接中。 3. **多重捕获(Multicatch)**:在try-catch语句中,可以同时捕获多个异常类型,简化了代码。 4. **类型推断...

    java jdk1.7.0_17.zip

    9. **改进的编译器和性能优化**:Javac编译器进行了优化,提高了编译速度和生成代码的质量。 压缩包中的"jdk1.7.0_17"文件包含了JDK的所有组件,包括JRE(Java Runtime Environment)、开发工具(如javac、jar等)...

    OPENJDK11U-jdk_

    在使用OpenJDK 11.0.16+8时,开发者可以享受这些特性的改进和增强,同时也需要注意兼容性和性能的优化。安装后,可以通过`java --version`命令检查安装的版本。此外,OpenJDK的持续更新意味着可能存在新的安全修复和...

    jdk-7u75-windows-x64安装板

    **Java Development Kit (JDK) 7 Update 75 for Windows x64详解** Java Development Kit(JDK)是Oracle公司发布的用于开发和运行Java应用程序的工具集合。...记得保持JDK更新,以获取最新的安全补丁和性能优化。

    jdk-6u45-windows-x64.exe

    标题中的"jdk-6u45-windows-x64.exe"表明我们正在讨论的是JDK 6的更新45(Update 45),这是一个专为64位Windows操作系统设计的版本。在Windows环境下,".exe"扩展名表示可执行文件,这意味着该文件可以直接在...

    jdk-6u27-win-x64.rar

    8. **JRuby、Jython等嵌入式JVM支持**:通过JSR 292,使得其他动态语言能在JVM上运行。 对于那些需要在当前环境下使用Java 6的开发者来说,这个压缩包是一个宝贵的资源。然而,需要注意的是,继续使用过时的Java...

    jdk-11.0.5-linux-x64

    可以通过设置`JVM`参数来优化JDK的性能。例如,调整堆大小: ```bash java -Xms128m -Xmx512m -jar yourapp.jar ``` 这里的`-Xms`和`-Xmx`分别设置了初始和最大堆内存。 **5. 开发与调试** 使用JDK附带的`...

    jdk-6u10-rc2-bin-b32-windows-i586-p-12_sep_2008.rar

    7. **增强的调试和分析工具**:例如,VisualVM工具集成了更多的性能监控和分析功能,帮助开发者更好地理解和优化代码。 8. **XML处理**:JAXB 2.1和StAX API的改进,使得XML数据的绑定和处理更加便捷。 9. **脚本...

Global site tag (gtag.js) - Google Analytics