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

JDK6u25跑Eclipse变快了?——多层编译模式

阅读更多
先前只在几个测试用的环境里装了JDK 6 update 25,没在自己的开发机上装。刚才正好试一个东西的时候装上了,就顺手把跑Eclipse的JVM设到了JDK6u25上。
-vm
D:/sdk/jdk1.6.0_25/bin/javaw.exe
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-product
org.eclipse.epp.package.jee.product
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-server
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx512m
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar
-XX:+TieredCompilation

留意几个参数:

-vm
这个用来指定用哪个JDK来启动Eclipse。指定到我的JDK6u25安装目录了。

-vmargs
这个后面的配置用来传给JVM设定启动参数。其中
-javaagent:lombok.jar
-Xbootclasspath/a:lombok.jar

这俩是因为我装了Project Lombok插件。对它没兴趣的可以忽略这两项。

重要的是这两个配置:
-server
-XX:+TieredCompilation

前者是指定使用HotSpot Server VM。后者则是打开“多层编译”(tiered compilation)。在该模式下,代码会先被解释器执行,积累到足够热度的时候由client compiler(C1)编译,然后继续积累热度到一定程度会进一步被server compiler(C2)重新以更高的优化程度编译。
这个模式在JDK6的HotSpot里很早就存在了,但去年下半年有大幅度翻新,相关代码随着JDK6u25发布,现在已经比较稳定了。相关的changeset在这里
在JDK 8 build 23里,x86与SPARC上的HotSpot Server VM已经将多层编译模式设为默认执行模式。相关changeset:
7116795: Tiered: enable by default for server: http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/97825a4f7369

理论上这会提高启动速度和平均速度,顶峰速度也可能有一定提高——跟client VM比的话是肯定有提高,跟server VM比的话是应该还是差不多。
现实是:我用了这个模式之后Eclipse的启动感觉是变快了……不知道是不是我的错觉?
K神说他试了觉得启动速度没差别。嗯这应该怎么测比较好?

大家也试试看如何?

================================================

2011-12-01更新:在这个改动生效后,HotSpot Server VM就默认开启多层编译了:
http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2011-November/006786.html
changeset: http://hg.openjdk.java.net/hsx/hotspot-comp/hotspot/rev/97825a4f7369

2012-04-07更新:结果在JDK7u4里多层编译又被设回到默认不打开了:
7159766: Tiered compilation causes performance regressions

2013-07-27更新:然后在JDK8的首个发布版里终于又要把TieredCompilation设到默认开启了:
JDK-8008938 : TieredCompilation should be default
分享到:
评论
3 楼 ykdsg 2011-06-10  
Project Lombok如果要用的话估计还要推广开,至少要在项目组里推广开,不然代码提交上去了,别人没法用。下了JDK update26 测试了下多层编译,好像eclipse第一次打开不快,接下来就很快了,不过cpu占用很高一度达到90%多,开完之后就下去了
2 楼 RednaxelaFX 2011-05-04  
docman 写道
不知道有没有官方的数据,不过这对测试集应该是很敏感的,如果非要对特定应用测,可以:
1.比如对Eclipse,统计对比在C1/C2/Tiered模式下Eclipse启动到初始化完进入稳定态后的时间
2.HOTSPOT的解释翻译一般具有明显的阶段性,可以选择合适的阈值,统计C1/C2/Tiered模式在第一阶段所耗费的时间,这个麻烦些不过具有一定的普适性
3.呵呵,发动群众,直观感觉,大量采样

本来发这帖就是为了执行3
1 楼 docman 2011-05-04  
不知道有没有官方的数据,不过这对测试集应该是很敏感的,如果非要对特定应用测,可以:
1.比如对Eclipse,统计对比在C1/C2/Tiered模式下Eclipse启动到初始化完进入稳定态后的时间
2.HOTSPOT的解释翻译一般具有明显的阶段性,可以选择合适的阈值,统计C1/C2/Tiered模式在第一阶段所耗费的时间,这个麻烦些不过具有一定的普适性
3.呵呵,发动群众,直观感觉,大量采样

相关推荐

    eclipse win64以及jdk安装包

    这样,Eclipse就能识别出JDK,并用于编译和运行Java程序。 总的来说,"eclipse Oxygen下载安装包以及jdk安装包"为Java和JavaEE开发提供了一个完整的开发环境。通过合理配置和使用,开发者可以充分利用Eclipse的高级...

    javajdk.zip

    Java JDK(Java Development Kit)是Java编程语言的核心组件,它包含了一个Java运行环境(JRE)、编译器(javac)以及其他工具,如jar、javadoc等,用于编写、调试和运行Java应用程序。本压缩包"javajdk.zip"包含了...

    Java+JDK6学习笔记(PDF版书籍,免费下载)

    #### 六、JDK6的安装与配置 - **下载JDK**: - JDK 6发布于2006年12月11日。 - 可以通过Sun公司的官方网站下载最新的修正版本。 - 地址:http://java.sun.com/javase/downloads/index.jsp - **安装JDK**: - ...

    jdk-1.7版本64位

    Android Studio,官方的Android集成开发环境(IDE),依赖于JDK来编译和运行Android应用。JDK 1.7曾是Android开发的推荐版本之一,尽管现在官方已经更新到了JDK 8,但在某些旧项目或特定需求下,可能仍需要使用JDK ...

    最新配置好的 eclipse

    6. **调试和测试**: 利用Eclipse的调试工具,如断点、变量查看器等,对应用进行调试。 **Eclipse的其他特性:** - **插件系统**:Eclipse的灵活性在于其强大的插件系统,可以扩展其功能以适应各种开发需求。 - **...

    Java+JDK+6学习笔记.pdf

    ### Java+JDK+6 学习笔记知识点详解 #### 一、Java 概述 - **起源与发展:** - Java 最初是由 Sun Microsystems 的 Green Project 开发出来的编程语言,最初是为了创建一个名为 Star7 的应用程序。 - 1995 年 5 ...

    eclipse.zip

    在开始使用Eclipse之前,你需要确保你的计算机已经安装了Java Development Kit (JDK),因为Eclipse依赖于JDK来编译和运行Java代码。一旦JDK安装完毕,你可以解压"eclipse.zip"到你希望的位置,然后运行其中的...

    JDK_Java.zip

    除了标准版(JDK)外,还有针对服务器环境的Java企业版(JEE,Java Enterprise Edition),它扩展了JDK的功能,提供了用于开发分布式、多层架构的企业级应用的框架和API,如Servlet、JSP、EJB等。 总之,JDK是Java...

    《Java JDK6学习笔记》(中文ppt->pdf)

    ### Java JDK6 学习要点详析 #### 一、Java 概览 - **起源与发展**:Java 最初由 Sun Microsystems 的 James Gosling 在 Green Project 中开发,初衷是为了创建一个名为 Star7 的应用程序。其命名灵感来源于 ...

    一个jsp的eclipse开发

    #### 六、Eclipse 中 JSP 的调试 在 Eclipse 中开发 JSP 通常涉及到以下几个步骤: 1. **安装必要的插件**:确保 Eclipse 已经安装了支持 JSP 编辑和调试的插件。 2. **配置开发环境**:设置正确的 JDK 和 Web ...

    java环境配制

    Java环境配置是每个Java开发者必须经历的步骤,主要包括JDK的安装、Eclipse或MyEclipse的配置,以及Tomcat服务器的设置。首先,我们来深入理解这些组件的作用。 1. **JDK** (Java Development Kit):这是Java开发的...

    Android平台搭建杂记

    下载并安装jre-6u23-windows-i586.exe和jdk-6u23-windows-i586.exe,确保Eclipse能正常启动。有时,Eclipse可能会提示缺少JRE,此时只需将JDK中的jre文件夹复制到Eclipse目录下即可解决。 接下来是SDK(Software ...

    2JavaEE开发及运行环境.pptx

    Java EE是Java平台的企业版,主要用于构建分布式、多层的企业级应用程序。开发和运行Java EE应用需要特定的环境,主要包括JDK(Java Development Kit)的安装、配置以及集成开发环境(IDE)的选择和使用。 首先,...

    JAVA入门以及学习方式.doc

    6. **Eclipse集成开发环境**: Eclipse是流行的Java开发IDE,提供了代码编辑、调试、构建和部署等功能。安装Eclipse有助于提升开发效率,但Eclipse本身并不包含JDK,需要先确保JDK已正确安装。 7. **学习方式**: ...

    实验JavaEEForWeb 搭建开发环境.doc

    Java EE for Web 开发是构建基于Web的应用程序的过程,它基于Java平台的Enterprise Edition,提供了丰富的功能和服务,用于开发分布式、多层的企业级应用。在本文档中,我们将通过四个实验来逐步搭建Java EE的开发...

    JSP中插件设计

    本文通过一个具体的案例——开发一个JSP编辑器插件——详细介绍了在Eclipse中设置JSP断点的方法,以及如何进行远程调试。我们不仅介绍了JPDA的基本原理,还深入探讨了JSR-45规范及其在JSP调试中的应用。通过本文的...

    Java经典入门教程

    Java开发的软件部署在Java平台上,这在企业级应用开发中尤为重要,特别是在使用Java企业版(Java EE)时,软件的部署与配置变得尤为关键,因为它们往往涉及复杂的服务器环境和多层架构。 #### 二、Java的历史、现状...

Global site tag (gtag.js) - Google Analytics