classpath
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: The Mauve unicode testcase and VM performance


From: Mark Wielaard
Subject: RE: The Mauve unicode testcase and VM performance
Date: Tue, 13 Apr 2004 20:41:43 +0200

Hi,

On Tue, 2004-04-13 at 11:38, Jeroen Frijters wrote:
> This is what I did:
> #cd mauve
> #mono ../ikvm/bin/ikvmc.exe -out:mauve.exe
> -main:gnu.testlet.SimpleTestHarness `find | grep -v altered | grep
> .*class$` -reference:../ikvm/bin/classpath.dll
> #cp ../ikvm/bin/*.dll .

Aha! OK I actually did:
mono ../ikvm/bin/ikvmc.exe -out:mauve.exe \
     -main:gnu.testlet.SimpleTestHarness \
     gnu/testlet/*.class gnu/testlet/java/lang/Character/*.class \
     -reference:../ikvm/bin/classpath.dll

Which seemed to give a slightly faster executable then when including
all mauve classes.

$ time echo gnu.testlet.java.lang.Character.unicode | mono mauve.exe -debug
Reading unicode database...
done
Benchmark : load:2944ms   tests:1337ms
0 of 3578944 tests failed
 
real    0m4.905s
user    0m0.072s
sys     0m0.012s

(Best of three runs again)

     load  test  overhead  total
Old: 1703  1292  3174      6169
New: 2944  1337   624      4905

So the overhead/startup cost is way down, but both load and test take
much longer. Why is that do you think?

> > The other thing to try would be using Mono's --aot option 
> > to pre-JIT (as it were) the generated exe and dlls.
> 
> I couldn't get that to work.

OK seems that it simply:
$ mono -O=all --aot mauve.exe
Mono Ahead of Time compiler - compiling assembly mauve.exe
Executing the native assembler: as /tmp/mono_aot_hSe8Lr -o
/tmp/mono_aot_hSe8Lr.o
Executing the native linker: ld -shared -o mauve.exe.so
/tmp/mono_aot_hSe8Lr.o
Compiled 103 out of 104 methods (99%)
0 methods contain absolute addresses (0%)
1 methods contain wrapper references (0%)
0 methods contain lmf pointers (0%)
0 methods have other problems (0%)
AOT RESULT 0

You then still need the original "exe" for execution.
The man page says about --aot:

        This  option is used to precompile the CIL code in the specified
        assembly to native code.  The generated code is stored in a file
        with  the extension .so.  This file will be automatically picked
        up by the runtime when the assembly is executed.

        This pre-compiles the methods,  but  the  original  assembly  is
        still  required to execute as this one contains the metadata and
        exception information which is not  availble  on  the  generated
        file.   When  precompiling  code, you might want to compile with
        all optimizations (-O=all).  Pre-compiled code is position inde-
        pendent code.
        
$ time echo gnu.testlet.java.lang.Character.unicode | mono mauve.exe -debug
Reading unicode database...
done
Benchmark : load:2944ms   tests:1312ms
0 of 3578944 tests failed
 
real    0m4.882s
user    0m0.068s
sys     0m0.017s

(Best of three again)

     load  test  overhead  total
Old: 1703  1292  3174      6169
New: 2944  1337   624      4905
Oat: 2944  1312   626      4882

So that doesn't seem to help in this case (or I did something wrong and
it isn't picking up the mauve.exe.so after all).

Cheers,

Mark

Attachment: signature.asc
Description: This is a digitally signed message part


reply via email to

[Prev in Thread] Current Thread [Next in Thread]