Performances with gcj
Benjamin de Dardel
benjamin.dedardel@gmail.com
Sun Aug 10 21:34:00 GMT 2008
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
>>>>>
More information about the Java
mailing list