- 浏览: 3013680 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
先前只在几个测试用的环境里装了JDK 6 update 25,没在自己的开发机上装。刚才正好试一个东西的时候装上了,就顺手把跑Eclipse的JVM设到了JDK6u25上。
留意几个参数:
-vm
这个用来指定用哪个JDK来启动Eclipse。指定到我的JDK6u25安装目录了。
-vmargs
这个后面的配置用来传给JVM设定启动参数。其中
这俩是因为我装了Project Lombok插件。对它没兴趣的可以忽略这两项。
重要的是这两个配置:
前者是指定使用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
-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.呵呵,发动群众,直观感觉,大量采样
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.呵呵,发动群众,直观感觉,大量采样
1.比如对Eclipse,统计对比在C1/C2/Tiered模式下Eclipse启动到初始化完进入稳定态后的时间
2.HOTSPOT的解释翻译一般具有明显的阶段性,可以选择合适的阈值,统计C1/C2/Tiered模式在第一阶段所耗费的时间,这个麻烦些不过具有一定的普适性
3.呵呵,发动群众,直观感觉,大量采样
发表评论
-
The Prehistory of Java, HotSpot and Train
2014-06-02 08:18 0http://cs.gmu.edu/cne/itcore/vi ... -
MSJVM and Sun 1.0.x/1.1.x
2014-05-20 18:50 0当年的survey paper: http://www.sym ... -
Sun JDK1.4.2_28有TieredCompilation
2014-05-12 08:48 0原来以前Sun的JDK 1.4.2 update 28就已经有 ... -
IBM JVM notes (2014 ver)
2014-05-11 07:16 0Sovereign JIT http://publib.bou ... -
class data sharing by Apple
2014-03-28 05:17 0class data sharing is implement ... -
Java 8与静态工具类
2014-03-19 08:43 16125以前要在Java里实现所谓“静态工具类”(static uti ... -
Java 8的default method与method resolution
2014-03-19 02:23 10324先看看下面这个代码例子, interface IFoo { ... -
HotSpot Server VM与Server Class Machine
2014-02-18 13:21 0HotSpot VM历来有Client VM与Server V ... -
Java 8的lambda表达式在OpenJDK8中的实现
2014-02-04 12:08 0三月份JDK8就要发布首发了,现在JDK8 release c ... -
GC stack map与deopt stack map的异同
2014-01-08 09:56 0两者之间不并存在包含关系。它们有交集,但也各自有特别的地方。 ... -
HotSpot Server Compiler与data-flow analysis
2014-01-07 17:41 0http://en.wikipedia.org/wiki/Da ... -
基于LLVM实现VM的JIT的一些痛点
2014-01-07 17:25 0同事Philip Reames Sanjoy Das http ... -
tailcall notes
2013-12-27 07:42 0http://blogs.msdn.com/b/clrcode ... -
《自制编程语言》的一些笔记
2013-11-24 00:20 0http://kmaebashi.com/programmer ... -
字符串的一般封装方式的内存布局 (1): 元数据与字符串内容,整体还是分离?
2013-11-07 17:44 22244(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局 (0): 拿在手上的是什么
2013-11-04 18:22 21361(Disclaimer:未经许可请 ... -
字符串的一般封装方式的内存布局
2013-11-01 12:55 0(Disclaimer:未经许可请 ... -
关于string,内存布局,C++ std::string,CoW
2013-10-30 20:45 0(Disclaimer:未经许可请 ... -
对C语义的for循环的基本代码生成模式
2013-10-19 23:12 21729之前有同学在做龙书(第二版)题目,做到8.4的练习,跟我对答案 ... -
Java的instanceof是如何实现的
2013-09-22 16:57 0Java语言规范,Java SE 7版 http://docs ...
相关推荐
OpenJDK8U-jdk_x64_windows_hotspot_8u312b07.msi适用于Windows系统。 Eclipse Temurin 项目提供了高质量的、经过 TCK 认证的 OpenJDK 运行时和相关技术,可在整个 Java生态系统中使用。
eclipse+jdk1.8
eclipse64位开发工具,带JDK1.8,自己安装,无任何问题,Eclipse Java EE IDE for Web Developers. Version: 2018-09 (4.9.0) Build id: 20180917-1800 OS: Windows 10, v.10.0, x86_64 / win32 Java version: 1.8.0_...
m2e 适合 eclipse3.X jdk1.6 (maven2eclipse)
一般不推荐下载最新版jdk,大家想,新出来的事物,都会有一个测试期有些功能不怎么稳定,而jdk1.8要稍微稳定些,所以在学校里面老师都一般让我们下载jdk1.8。有些时候我们去国外的官网上下载东西,不仅要克服英文...
官网正版jdk-7u25-windows-x64
3.在Eclipse的Windows——> Perference——>General->Editors->File Associations中修改“*.class”默认关联的编辑器为“JadClipse Class File Viewer” 重启后即可查看.class反编译文件 附:jad版本下载目录:...
3、将jad反编译工具jad.exe放到jdk安装路径的bin目录下面,jadclipse_3.1.0.jar放到eclipse的安装目录下的plugins目录下。 4、启动eclipse,打开:Window->Preferences->Java->JadClipse. Path to ...
eclipse开发工具jdk1.8补丁 将 Javacompiler1.8放在eclipse开发工具的plugins下,打开eclipse菜单-help-install new software-add-archive。
JDK8u(OpenJDK8u)全量源码。 包含jvm、java native源码 分卷2(全2分卷)
Eclipse Temurin (OpenJDK8U-jdk_x64_linux_hotspot_8u312b07.tar.gz)适用于Linux系统。 Eclipse Temurin 项目提供了高质量的、经过 TCK 认证的 OpenJDK 运行时和相关技术,可在整个 Java生态系统中使用。
JDK 6 TOMCAT 6 Eclipse 3.3 Myeclipse 6.07.0 安装档说明
JDK 1.6.25 .part02 JAVA开发的SDK 最稳定的JDK版本
JDK1.8详细介绍如下: ——版本:jdk 1.8.0_241 JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。...不建议在计划于 2020 年 4 月 14 日进行下一次关键补丁更新后使用此 JDK(版本 8u241)。
jdk-7u25-windows-i586.zip
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的...
Eclipse Temurin (OpenJDK8U-jdk_x64_mac_hotspot_8u312b07.pkg)适用于macOS系统。 Eclipse Temurin 项目提供了高质量的、经过 TCK 认证的 OpenJDK 运行时和相关技术,可在整个 Java生态系统中使用。
decompiler1.0.3支持JDK1.8,支持反编译、查看源码 推荐links方式安装,安装教程:http://www.blogjava.net/tangzurui/archive/2008/06/30/211669.html
OpenJDK11U-jdk_x64_windows_hotspot_11.0.13_8.msi适用于Windows系统。 Eclipse Temurin项目提供了高质量的、经过 TCK 认证的 OpenJDK 运行时和相关技术,可在整个 Java 生态系统中使用。
Eclipse+jdk安装包;Eclipse+jdk安装包;Eclipse+jdk安装包