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
>
>
>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.