Page 3 of 4 FirstFirst 1234 LastLast
Results 21 to 30 of 37

Thread: Java Performance: Ubuntu Linux vs. Windows Vista

  1. #21
    Join Date
    Dec 2008
    Posts
    2

    Default real world realtime experience

    Thanks fort the article. quite interresting, I must say.
    Seems like you are mostly testing floating-point performance and quite small benchmarks. Java is, however, not so much used for that kind of applications. Rather, it is used for server-side request- and transaction processing where global optimization and integer performance is more important.

    I was recently to a talk by a leading vendor of stock-exchange software (actually, the IT department of a stock exchange). They do massively parallel request processing with real-time requirements. Often the stock exchanges cooperate, and the deal is closed (with earnings to the stock exchange company) on the server with the fastest response.

    After a very thorough selection process, they also ended up with java on linux as the technology of choice for this task, with superior global application performance being one of the reasons for that. After a lot of experiments, they found that the best performance with acceptable realtime requirements is achieved by using plain vanilla java and leaving most settings at default. Instead, they tweak the linux setup and kernel (gentoo). The most critical systems are run on "applicance-style" servers with no support for any other hardware or software other than the trading server software. I guess that means bash, ssh and java and not even usb support. Naturally, I haven't tried it myself, but as long as you are doing performance measurements I hope you do. I'm already looking forward to the article :-)

  2. #22
    Join Date
    Dec 2008
    Posts
    1

    Default Java server ergonomics

    As someone already said, you are benchmarking a server VM on Linux vs a client VM on Windows.
    Java has this "server ergonomics mode" that changes the default JVM configuration when a "server" enviroment is detected. On Linux, it only takes 2 cores and 2GB of memory, so basically on any decently recent computer running Linux you're in server mode by default.
    Vista is not considered, on the other side, a server OS, so there you're running a client VM.
    The difference you're seeing matches my experience, the server VM is 40% faster on heavy computation math. About the I/O tests, not sure, never run one that was I/O bound so not sure if the two VM have significant differences.

    For more information on server ergonomics see here (a bit old, but still applies):
    http://java.sun.com/docs/hotspot/gc5.0/ergo5.html

    If you want to see if you're in server ergonomics mode just run "java -version" from the command line. Here is what I get on XP:
    java version "1.6.0_10"
    Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
    Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)

    And here is what I get on an Ubuntu 7.10 headless machine sitting below my desk:
    java version "1.6.0_03"
    Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
    Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)

  3. #23
    Join Date
    May 2007
    Posts
    44

    Default

    I wonder if i'm the only one who has "problems" with java on linux when using kernelpreemption = voluntary.

  4. #24
    Join Date
    Dec 2008
    Posts
    1

    Default

    Phoronix discovered that the server HotSpot VM is about 60% faster* than the client VM.
    Guess what, this is true on both Windows and Linux.

    The real result is not "Linux is 60% faster than Windows" but "server VM is 60% faster than client VM".

    Anyone who has doubts, can repeat the tests on their own PC.

    * - depends on actual code; for Bork File Encryptor it is about 60%

  5. #25
    Join Date
    Jul 2008
    Location
    Wrocław/Poland
    Posts
    37

    Default

    I guess benchmark was ment to compare stock configurations on both systems - in other words - what typical user will receive. That being said Linux user will most likely experience better overall performance while Windows user better GUI responsiveness.
    So, in general, conclusions drawn from this benchmark are perfectly valid.
    It would be more infotmative though to compare same JVM's on different platforms (OpenSolaris, Linux, Windows) with exact configurations (eliminate client/server differences), because so far this benchmark doesn't tell anything new really.
    Last edited by reavertm; 12-21-2008 at 11:46 PM.

  6. #26
    Join Date
    Dec 2008
    Posts
    2

    Default

    I guess benchmark was ment to compare stock configurations on both systems - in other words - what typical user will receive..
    ...(etc etc and also several other comments by other authors)

    My point was that a more large-scale and "scientific" approach concluded that 1) the default settings actually are the "best" setttings for general performance with soft-realtime behaviour, and 2) settings and configurations of the operating system kernel (especially linux) is more important for java performance than fiddeling with java's own settings.

    I find that last point particularily interresting, as all other performance tests I've seen with java so far has neglected this issue completely.

  7. #27

    Default

    Quote Originally Posted by RealNC View Post
    Linux got owned where it matters the most: Graphics.
    Really? It depends for who... And there are much better Linux drivers than driver used in benchmark. And different versions of java were used, just think a little before you comment.

    @reavertm

    I completely agree with you. In my opinion such benchmarks are useless and misleading like one with Ubuntu vs Macos...
    Last edited by kraftman; 12-24-2008 at 08:47 AM.

  8. #28

    Default Questions about benchmark

    I posted this in the JavaChampions mailing list, and got these questions:

    "I wonder why he used JDK 1.6.0_10 on Ubuntu and 1.6.0_07 on Windows. There has been enough work on the _10 JIT that it's not a fair comparison.

    Also, he does not say whether he is using the -server of -client hotspot compilers for these tests. It could be that Ubuntu defaulted to -server and Windows to -client, which would explain the results..."

    I think these are fair questions, and I'd like to know the answers so I can report back.

    Thanks,

    Cay

  9. #29
    Join Date
    May 2009
    Posts
    3

    Default

    I did some testing on my own. Having run tests with -server switch on windows shows great improvement. The test was multithreaded heavy math calculations.

    Linux was latest kernel from Ubuntu 9.04 (tried both server and desktop flavor) and best result on Vista using SUN Java 6_13 was 15% better than best result on Linux using Open JVM.

    Solaris on the other hand was about 25% faster using 64 bit java 1.5

    Regards
    Alex

  10. #30

    Default

    Quote Originally Posted by akpch View Post
    I did some testing on my own. Having run tests with -server switch on windows shows great improvement. The test was multithreaded heavy math calculations.

    Linux was latest kernel from Ubuntu 9.04 (tried both server and desktop flavor) and best result on Vista using SUN Java 6_13 was 15% better than best result on Linux using Open JVM.

    Solaris on the other hand was about 25% faster using 64 bit java 1.5

    Regards
    Alex
    If you want to compare OS'es not different versions of java use the SAME java on each OS...

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •