精华帖 (0) :: 良好帖 (6) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-27
测1.6时已经把-XX:-UseSplitVerifier关闭掉1.6的新类型推断(不过这个开着关着没啥影响,eclipse又不是用1.6编的),根据-XX:+TraceClassLoading的输出,使用两个jdk加载的类是一致的,两个jdk测试的时候类共享都是auto的(默认值:-Xshare:auto),从TraceClassLoading的输出也能看出类共享是起作用的。解释不了为何两者有100%左右的性能差距?我机器上测试多次都是如此,不知道是我的机器还是普遍现象。是统计口径两者不一至,还是性能确实有差距? C:\Users\Thinkpad>jps 3552 6372 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 6900 Jps C:\Users\Thinkpad>jstat -class 6372 Loaded Bytes Unloaded Bytes Time 7917 10190.3 0 0.0 8.18 C:\Users\Thinkpad>jps 3552 7272 Jps 7216 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar C:\Users\Thinkpad>jstat -class 7216 Loaded Bytes Unloaded Bytes Time 7902 9691.2 3 2.6 4.34 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-27
这个21似乎真的有问题。
我的办公用的电脑上装了1.5_11,1.6_18,1.6_21 我们有个产品运行在1.5_11和1.6_18上都没有问题,而且还可以互相通信。但1.6_21就不行,甚至同是21的服务器端和客户端连接都有问题。 |
|
返回顶楼 | |
发表时间:2010-11-29
最后修改:2010-11-29
首先赞搂主的精神。确实存在此问题,如下:
jdk1.6.0_21/bin/java $ jps 5829 org.eclipse.equinox.launcher_1.1.0.v20100507.jar 5906 Jps $ jstat -class 5829 Loaded Bytes Unloaded Bytes Time 6604 8544.5 0 0.0 10.71 jdk1.5.0_22/bin/java $ jps 5640 Jps 5577 org.eclipse.equinox.launcher_1.1.0.v20100507.jar $ jstat -class 5577 Loaded Bytes Unloaded Bytes Time 6617 8325.7 0 0.0 3.78 |
|
返回顶楼 | |
发表时间:2010-11-29
之前不是说21与Eclipse有兼容性问题,是被甲骨文收购后改名字造成的
|
|
返回顶楼 | |
发表时间:2010-11-29
vvvpig 写道 之前不是说21与Eclipse有兼容性问题,是被甲骨文收购后改名字造成的
对,我也有这个印象. |
|
返回顶楼 | |
发表时间:2010-11-29
最后修改:2010-11-29
名字改成oracle的那个问题是eclipse.exe的isSunVM()判断错误,-XX:MaxPermSize没传过去给虚拟机,导致eclipse只有64M的永久代可用经常发生OOM的,和这个没有关系。
jdk1.6比1.5慢的,应该和字节码或者jar包验证存在联系,使用-Xverify:none把字节码验证关闭掉,两边的性能就基本一致,1.6还是稍慢一些,但差距比较小了。 待会找个openJDK的源码跟一下,搞清楚这个问题。 |
|
返回顶楼 | |
发表时间:2010-11-29
我用的也是21..
|
|
返回顶楼 | |
发表时间:2010-11-29
LZ真是个细心的人,赞一个,,,
我用的是 java version "1.6.0_16" Java(TM) SE Runtime Environment (build 1.6.0_16-b01) Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing) |
|
返回顶楼 | |
发表时间:2010-11-29
最后修改:2010-11-29
hmm...
拿我机器上装的JDK来试了下用Eclipse 3.5打开空的workspace。 Windows XP SP3, x86 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 都是用client模式启动的。 1.5.0 D:\experiment>jstat -class 1780 Loaded Bytes Unloaded Bytes Time 6357 7705.5 0 0.0 4.80 D:\experiment>jstat -class 1976 Loaded Bytes Unloaded Bytes Time 6357 7705.5 0 0.0 4.78 D:\experiment>jstat -class 2628 Loaded Bytes Unloaded Bytes Time 6356 7705.0 0 0.0 4.77 1.5.0_22 D:\experiment>jstat -class 3544 Loaded Bytes Unloaded Bytes Time 6273 7789.5 0 0.0 6.20 D:\experiment>jstat -class 596 Loaded Bytes Unloaded Bytes Time 6274 7790.1 0 0.0 6.24 D:\experiment>jstat -class 3900 Loaded Bytes Unloaded Bytes Time 6270 7787.7 0 0.0 6.41 1.6.0 D:\experiment>jstat -class 2168 Loaded Bytes Unloaded Bytes Time 6326 7889.2 0 0.0 2.82 D:\experiment>jstat -class 648 Loaded Bytes Unloaded Bytes Time 6325 7888.6 0 0.0 2.69 D:\experiment>jstat -class 3892 Loaded Bytes Unloaded Bytes Time 6327 7889.9 0 0.0 2.77 1.6.0_01 D:\experiment>jstat -class 2840 Loaded Bytes Unloaded Bytes Time 6323 7887.6 0 0.0 2.75 D:\experiment>jstat -class 3988 Loaded Bytes Unloaded Bytes Time 6324 7888.2 0 0.0 2.74 D:\experiment>jstat -class 2540 Loaded Bytes Unloaded Bytes Time 6324 7888.2 0 0.0 2.72 1.6.0_04 D:\experiment>jstat -class 2840 Loaded Bytes Unloaded Bytes Time 6329 7932.6 0 0.0 2.60 D:\experiment>jstat -class 2668 Loaded Bytes Unloaded Bytes Time 6329 7932.4 0 0.0 2.63 D:\experiment>jstat -class 2024 Loaded Bytes Unloaded Bytes Time 6324 7929.1 0 0.0 2.61 1.6.0_05 D:\experiment>jstat -class 2860 Loaded Bytes Unloaded Bytes Time 6322 7928.0 0 0.0 2.57 D:\experiment>jstat -class 2636 Loaded Bytes Unloaded Bytes Time 6327 7931.1 0 0.0 2.51 D:\experiment>jstat -class 3428 Loaded Bytes Unloaded Bytes Time 6327 7931.9 0 0.0 2.47 1.6.0_10 D:\experiment>jstat -class 288 Loaded Bytes Unloaded Bytes Time 6326 7937.4 0 0.0 2.60 1476 Jps D:\experiment>jstat -class 1440 Loaded Bytes Unloaded Bytes Time 6331 7940.7 0 0.0 2.60 2136 Jps D:\experiment>jstat -class 332 Loaded Bytes Unloaded Bytes Time 6328 7938.7 0 0.0 2.61 1.6.0_13 D:\experiment>jstat -class 680 Loaded Bytes Unloaded Bytes Time 6329 7940.3 0 0.0 2.71 D:\experiment>jstat -class 3264 Loaded Bytes Unloaded Bytes Time 6334 7943.6 0 0.0 2.68 D:\experiment>jstat -class 2668 Loaded Bytes Unloaded Bytes Time 6332 7942.3 0 0.0 2.71 1.6.0_15 D:\experiment>jstat -class 1604 Loaded Bytes Unloaded Bytes Time 6285 7979.6 0 0.0 2.77 D:\experiment>jstat -class 1088 Loaded Bytes Unloaded Bytes Time 6282 7977.6 0 0.0 2.66 D:\experiment>jstat -class 1116 Loaded Bytes Unloaded Bytes Time 6282 7977.6 0 0.0 2.65 1.6.0_17 D:\experiment>jstat -class 2004 Loaded Bytes Unloaded Bytes Time 6283 7978.3 0 0.0 2.77 D:\experiment>jstat -class 3264 Loaded Bytes Unloaded Bytes Time 6287 7981.0 0 0.0 2.80 D:\experiment>jstat -class 3164 Loaded Bytes Unloaded Bytes Time 6285 7976.5 0 0.0 2.74 1.6.0_18 D:\experiment>jstat -class 3252 Loaded Bytes Unloaded Bytes Time 6285 8016.4 0 0.0 4.04 D:\experiment>jstat -class 2140 Loaded Bytes Unloaded Bytes Time 6288 8018.5 0 0.0 4.06 D:\experiment>jstat -class 1312 Loaded Bytes Unloaded Bytes Time 6287 8017.7 0 0.0 4.08 1.6.0_19 D:\experiment>jstat -class 3164 Loaded Bytes Unloaded Bytes Time 6289 8020.7 0 0.0 3.86 D:\experiment>jstat -class 1908 Loaded Bytes Unloaded Bytes Time 6285 8017.9 0 0.0 3.94 D:\experiment>jstat -class 2360 Loaded Bytes Unloaded Bytes Time 6295 8025.7 0 0.0 3.91 1.6.0_20 D:\experiment>jstat -class 3404 Loaded Bytes Unloaded Bytes Time 6290 8021.7 0 0.0 3.94 D:\experiment>jstat -class 3432 Loaded Bytes Unloaded Bytes Time 6297 8027.0 0 0.0 3.92 D:\experiment>jstat -class 4080 Loaded Bytes Unloaded Bytes Time 6289 8020.9 0 0.0 3.94 1.6.0_21 D:\experiment>jstat -class 2456 Loaded Bytes Unloaded Bytes Time 6293 8024.6 0 0.0 4.00 D:\experiment>jstat -class 3444 Loaded Bytes Unloaded Bytes Time 6310 8040.4 0 0.0 3.92 D:\experiment>jstat -class 2024 Loaded Bytes Unloaded Bytes Time 6306 8037.7 0 0.0 4.00 JDK 6推出的split verifier本来就是用来降低校验成本,提高类加载速度的。不过split verifier只对版本号为50.0或以上的Class文件才有效,而我的Eclipse 3.5里的JAR包基本上都没版本50.0的Class文件,实际用的还是老的type inference verification算法。 |
|
返回顶楼 | |
发表时间:2010-11-29
RednaxelaFX 写道 hmm...
拿我机器上装的JDK来试了下用Eclipse 3.5打开空的workspace。 Windows XP SP3, x86 org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar 都是用client模式启动的。 1.5.0 D:\experiment>jstat -class 1780 Loaded Bytes Unloaded Bytes Time 6357 7705.5 0 0.0 4.80 D:\experiment>jstat -class 1976 Loaded Bytes Unloaded Bytes Time 6357 7705.5 0 0.0 4.78 D:\experiment>jstat -class 2628 Loaded Bytes Unloaded Bytes Time 6356 7705.0 0 0.0 4.77 1.5.0_22 D:\experiment>jstat -class 3544 Loaded Bytes Unloaded Bytes Time 6273 7789.5 0 0.0 6.20 D:\experiment>jstat -class 596 Loaded Bytes Unloaded Bytes Time 6274 7790.1 0 0.0 6.24 D:\experiment>jstat -class 3900 Loaded Bytes Unloaded Bytes Time 6270 7787.7 0 0.0 6.41 1.6.0 D:\experiment>jstat -class 2168 Loaded Bytes Unloaded Bytes Time 6326 7889.2 0 0.0 2.82 D:\experiment>jstat -class 648 Loaded Bytes Unloaded Bytes Time 6325 7888.6 0 0.0 2.69 D:\experiment>jstat -class 3892 Loaded Bytes Unloaded Bytes Time 6327 7889.9 0 0.0 2.77 1.6.0_01 D:\experiment>jstat -class 2840 Loaded Bytes Unloaded Bytes Time 6323 7887.6 0 0.0 2.75 D:\experiment>jstat -class 3988 Loaded Bytes Unloaded Bytes Time 6324 7888.2 0 0.0 2.74 D:\experiment>jstat -class 2540 Loaded Bytes Unloaded Bytes Time 6324 7888.2 0 0.0 2.72 1.6.0_04 D:\experiment>jstat -class 2840 Loaded Bytes Unloaded Bytes Time 6329 7932.6 0 0.0 2.60 D:\experiment>jstat -class 2668 Loaded Bytes Unloaded Bytes Time 6329 7932.4 0 0.0 2.63 D:\experiment>jstat -class 2024 Loaded Bytes Unloaded Bytes Time 6324 7929.1 0 0.0 2.61 1.6.0_05 D:\experiment>jstat -class 2860 Loaded Bytes Unloaded Bytes Time 6322 7928.0 0 0.0 2.57 D:\experiment>jstat -class 2636 Loaded Bytes Unloaded Bytes Time 6327 7931.1 0 0.0 2.51 D:\experiment>jstat -class 3428 Loaded Bytes Unloaded Bytes Time 6327 7931.9 0 0.0 2.47 1.6.0_10 D:\experiment>jstat -class 288 Loaded Bytes Unloaded Bytes Time 6326 7937.4 0 0.0 2.60 1476 Jps D:\experiment>jstat -class 1440 Loaded Bytes Unloaded Bytes Time 6331 7940.7 0 0.0 2.60 2136 Jps D:\experiment>jstat -class 332 Loaded Bytes Unloaded Bytes Time 6328 7938.7 0 0.0 2.61 1.6.0_13 D:\experiment>jstat -class 680 Loaded Bytes Unloaded Bytes Time 6329 7940.3 0 0.0 2.71 D:\experiment>jstat -class 3264 Loaded Bytes Unloaded Bytes Time 6334 7943.6 0 0.0 2.68 D:\experiment>jstat -class 2668 Loaded Bytes Unloaded Bytes Time 6332 7942.3 0 0.0 2.71 1.6.0_15 D:\experiment>jstat -class 1604 Loaded Bytes Unloaded Bytes Time 6285 7979.6 0 0.0 2.77 D:\experiment>jstat -class 1088 Loaded Bytes Unloaded Bytes Time 6282 7977.6 0 0.0 2.66 D:\experiment>jstat -class 1116 Loaded Bytes Unloaded Bytes Time 6282 7977.6 0 0.0 2.65 1.6.0_17 D:\experiment>jstat -class 2004 Loaded Bytes Unloaded Bytes Time 6283 7978.3 0 0.0 2.77 D:\experiment>jstat -class 3264 Loaded Bytes Unloaded Bytes Time 6287 7981.0 0 0.0 2.80 D:\experiment>jstat -class 3164 Loaded Bytes Unloaded Bytes Time 6285 7976.5 0 0.0 2.74 1.6.0_18 D:\experiment>jstat -class 3252 Loaded Bytes Unloaded Bytes Time 6285 8016.4 0 0.0 4.04 D:\experiment>jstat -class 2140 Loaded Bytes Unloaded Bytes Time 6288 8018.5 0 0.0 4.06 D:\experiment>jstat -class 1312 Loaded Bytes Unloaded Bytes Time 6287 8017.7 0 0.0 4.08 1.6.0_19 D:\experiment>jstat -class 3164 Loaded Bytes Unloaded Bytes Time 6289 8020.7 0 0.0 3.86 D:\experiment>jstat -class 1908 Loaded Bytes Unloaded Bytes Time 6285 8017.9 0 0.0 3.94 D:\experiment>jstat -class 2360 Loaded Bytes Unloaded Bytes Time 6295 8025.7 0 0.0 3.91 1.6.0_20 D:\experiment>jstat -class 3404 Loaded Bytes Unloaded Bytes Time 6290 8021.7 0 0.0 3.94 D:\experiment>jstat -class 3432 Loaded Bytes Unloaded Bytes Time 6297 8027.0 0 0.0 3.92 D:\experiment>jstat -class 4080 Loaded Bytes Unloaded Bytes Time 6289 8020.9 0 0.0 3.94 1.6.0_21 D:\experiment>jstat -class 2456 Loaded Bytes Unloaded Bytes Time 6293 8024.6 0 0.0 4.00 D:\experiment>jstat -class 3444 Loaded Bytes Unloaded Bytes Time 6310 8040.4 0 0.0 3.92 D:\experiment>jstat -class 2024 Loaded Bytes Unloaded Bytes Time 6306 8037.7 0 0.0 4.00 JDK 6推出的split verifier本来就是用来降低校验成本,提高类加载速度的。不过split verifier只对版本号为50.0或以上的Class文件才有效,而我的Eclipse 3.5里的JAR包基本上都没版本50.0的Class文件,实际用的还是老的type inference verification算法。 哈哈,我是你得粉 |
|
返回顶楼 | |