Performances with gcj
ffileppo
ffileppo@libero.it
Sun Aug 10 18:30:00 GMT 2008
> 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