Re: Performances with gcj
Benjamin de Dardel <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Francesco, Thanks for your response. I had already tryed to optimize the code with the java file, but it didn't work : $ gcj -0 --main=PipeTest -o test.bin PipeTest.java gcj: unrecognized option '-0' With class files, compilation works... but performances decrease ! May be it's beacause of the threads. I don't know. I'll do some other tests in the next days. # test5 $ gcj -C PipeTest.java $ gcj -O2 --main=PipeTest -o test.bin PipeTest.class Consumer.class Producer.class Filter.class real 21m59.844s user 5m26.070s sys 9m52.130s # test6 $ gcj -C PipeTest.java $ gcj -O3 --main=PipeTest -o test.bin PipeTest.class Consumer.class Producer.class Filter.class real 25m34.394s user 6m12.250s sys 11m4.440s ffileppo a écrit : >> Hi all, >> >> I had to release a program that executes an external process and gets >> its standard output. >> I implemented a solution with threads and pipes to redirect inputs and >> outputs (cf PipeTest.java). >> >> I choose the 'find /' command to test it. >> I'm very surprised about gcj performances which are 5x slowly than sun jvm. >> In fact, I expected that my compiled program would be faster than all jvm. >> >> Do you have an idea about these differences ? >> Is that the gnu classpath implementation which is quiet slow ? >> >> Regards, >> Benjamin >> >> # test1 : bash >> $ time find / >> real 2m6.054s >> user 0m5.260s >> sys 0m6.990s >> >> # test2 : compilation with gcj >> $ gcj --main=PipeTest -o test.bin PipeTest.java >> $ time test.bin >> real 18m50.632s >> user 4m56.380s >> sys 8m31.940s >> >> real 19m38.148s >> user 5m9.660s >> sys 9m44.710s >> >> # test3: interpretation with gij >> $ gcj -C PipeTest.java >> $ time gij PipeTest >> >> real 22m39.882s >> user 6m7.580s >> sys 10m26.350s >> >> # test4 : interpretation with java >> $ javac PipeTest.java >> $ time java PipeTest >> real 3m35.035s >> user 1m18.710s >> sys 0m11.730s >> >> ##### compilers ##### >> $ gcj --version >> gcj (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu6) >> >> $ javac -version >> javac 1.6.0_03 >> >> > > You need to pass -O2 or -O3 option to gcj compiler (no optimization is enabled by default). > Please take a look at other posts about gcj performance (http://gcc.gnu.org/ml/java/2008-05/msg00017.html). > > Francesco > > > > >