Narendra Sankar wrote:
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]
Matthew Avery
Senior Developer
(513) 470-5316
http://www.einnovation.com/
eInnovation, Inc., located in the heart of the midwest, invents and promotes eBusiness software that moves business technology to open standards.
----------------------------------------------------------------------
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]