This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Performances with gcj


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






Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]