Hi Everyone

Since I discovered Jedit, I have been looking into jvm performance, 
specifically on linux as that is my platform of choice. I love jedit and it 
has all the features for me - but I primarily develop in C and C++. One of 
the problems I have seen is the slow performance on linux. I have a dual 1.7 
GHz Xeon workstation with 1GB of RAM, and still jedit feels slow. I also run 
Vmware on this machine with Windows 2000 as a client OS, and I ran jedit 
under the virtual machine, and it seems to run much faster than when it runs 
native on the same machine under linux. So in order to emperically prove this 
I ran some benchmarks and the results surprised me a lot.

All the benchmarks were run with Sun JDK 1.4.1_01, since that is the common 
jdk between linux and win 2000. I also ran the linux tests under the 
blackdown beta jdk and the performance is only slightly better than the Sun 
jdk.

Windows 2000 running on Vmware Workstation 3.2
Java Grande Forum Benchmark Suite - Version 2.0 - Section 3 - Size A

Section3:Euler:Init:SizeA       0.39 (s)         42833.332       (Gridpoints/s)
Section3:Euler:Run:SizeA        11.247 (s)       8.89126         (Timesteps/s)
Section3:Euler:Total:SizeA      11.657 (s)       0.08578537      (Solutions/s)
Section3:MolDyn:Run:SizeA       7.511 (s)        166835.44       (Interactions/s)
Section3:MolDyn:Total:SizeA     7.601 (s)        0.13156164      (Solutions/s)
Section3:MonteCarlo:Run:SizeA   20.509 (s)       487.59082       (Samples/s)
Section3:MonteCarlo:Total:SizeA 20.94 (s)        0.04775549      (Solutions/s)
Section3:RayTracer:Init:SizeA   0.03 (s)         2133.3333       (Objects/s)
Section3:RayTracer:Run:SizeA    18.587 (s)       1210.5234       (Pixels/s)
Section3:RayTracer:Total:SizeA  18.687 (s)       0.053513136     (Solutions/s)
Section3:AlphaBetaSearch:Run:SizeA      11.807 (s)       620062.06       (positions/s)

Gentoo Linux 1.4
Java Grande Forum Benchmark Suite - Version 2.0 - Section 3 - Size A

Section3:Euler:Init:SizeA       0.561 (s)        29777.184       (Gridpoints/s)
Section3:Euler:Run:SizeA        12.548 (s)       7.9693975       (Timesteps/s)
Section3:Euler:Total:SizeA      13.139 (s)       0.07610929      (Solutions/s)
Section3:MolDyn:Run:SizeA       8.112 (s)        154474.97       (Interactions/s)
Section3:MolDyn:Total:SizeA     8.312 (s)        0.12030799      (Solutions/s)
Section3:MonteCarlo:Run:SizeA   25.972 (s)       385.03003       (Samples/s)
Section3:MonteCarlo:Total:SizeA 26.543 (s)       0.037674718     (Solutions/s)
Section3:RayTracer:Init:SizeA   0.04 (s)         1600.0  (Objects/s)
Section3:RayTracer:Run:SizeA    18.817 (s)       1195.7273       (Pixels/s)
Section3:RayTracer:Total:SizeA  18.987 (s)       0.052667614     (Solutions/s)
Section3:AlphaBetaSearch:Run:SizeA      11.637 (s)       629120.3        (positions/s)

I ran the java grande benchmarks and got the results above. I have left out 
all the results with obvious results - i.e the native linux should be faster 
than the vmware windows 2000 virtual machine. But the results show that the 
windows performace is better. Either the virtual machine is zero overhead or 
the windows jdk performance is significantly better than the linux jdk.

But the results that blew me away were some that I did with jedit

Windows 2000 on Vmware 3.2
Startup time for opening 33 java files and parsing them and display
5s

Gentoo Linux 1.4
Startup time for opening 33 java files and parsing them and display
9s

Now I know that the graphics performance for windows is much better than 
linux, but I don't understand the results I am seeing.

As I understand Vmware, the graphics applications make regular windows 
graphics API calls, and then the virtual machine uses a XServer extention to 
display it on the screen. 
Same with IO, the virtual machine should in theory have much higher overhead.

But I am seeing in my day to day use of jedit, is that I get much better 
performance on VMware than running native on linux. Specifically for a large 
source file (5000 lines) scrolling down using the keyboard is much much 
faster on the virtual machine than native. This is true even if I set up java 
to run concurrent gc and to use parallel gc (java -Xms128m -Xmx256m 
-XX:NewRatio=2 -XX:+UseParallelGC -XX:+UseConcMarkSweepGC ).
Vmware has only one processor to play with. Linux has two and still is slower.

Can the blackdown team shed some light on this? Can this be due to the version 
of the native compiler used to build the jvm? I have seen gcc 3.2 to be 30% 
faster than 2.95.3 on C and C++ code and the intel compiler to be a further 
15% better. Does anyone know what compiler Sun used to build the windows jdk?

Has someone built the jdk with gcc 3.2 and compared the performance on 1.4.1? 
Unfortunately it seems that Sun has not yet released the source, so I can't 
try this out. However I can definitely volunteer to do so if someone points 
me to the source.

Thanks
Naren Sankar


----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to