[Mono-list] Benchmark information needed.

Martin Baulig martin@gnome.org
19 Aug 2002 20:56:09 +0200


Hi Miguel,

I think I get a noticeable speed improvement :-)

* without the patch:

Elapsed: 00:01:17.6490380
Elapsed: 00:01:17.5891000

* with the patch

Elapsed: 00:01:17.4687030
Elapsed: 00:01:17.4107410

* without the patch and --precompile

Elapsed: 00:01:17.6519500
Elapsed: 00:01:17.5262830
Elapsed: 00:01:17.6509770

* with the patch and --precompile

Elapsed: 00:01:17.4046890
Elapsed: 00:01:17.4059810
Elapsed: 00:01:17.4082150

* MCS compilation without the patch:

=======
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time make mcs-mono.exe
mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[02:953] Loading references
[00:041]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:070] Populate tree
[01:222] Emitting code
[04:303] Total so far
[07:682]    done
[00:000] Closing types
[00:119] Saved output
[12:107] Total
Compilation succeeded

real    0m14.124s
user    0m13.990s
sys     0m0.080s
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time make mcs-mono.exe
mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[03:195] Loading references
[00:042]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:067] Populate tree
[01:226] Emitting code
[04:548] Total so far
[07:724]    done
[00:000] Closing types
[00:119] Saved output
[12:393] Total
Compilation succeeded

real    0m14.892s
user    0m13.910s
sys     0m0.140s
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time make mcs-mono.exe
mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[02:948] Loading references
[00:042]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:069] Populate tree
[01:218] Emitting code
[04:295] Total so far
[07:686]    done
[00:000] Closing types
[00:116] Saved output
[12:100] Total
Compilation succeeded

real    0m14.101s
user    0m13.930s
sys     0m0.120s
=======

* MCS compilation with the patch:

=======
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time ~/monocvs/mono/mono/jit/mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[03:073] Loading references
[00:040]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:068] Populate tree
[01:186] Emitting code
[04:384] Total so far
[07:505]    done
[00:000] Closing types
[00:121] Saved output
[12:013] Total
Compilation succeeded

real    0m14.006s
user    0m13.760s
sys     0m0.180s
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time ~/monocvs/mono/mono/jit/mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[03:069] Loading references
[00:040]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:070] Populate tree
[01:183] Emitting code
[04:379] Total so far
[07:474]    done
[00:000] Closing types
[00:121] Saved output
[11:977] Total
Compilation succeeded

real    0m13.971s
user    0m13.800s
sys     0m0.120s
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time ~/monocvs/mono/mono/jit/mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[03:070] Loading references
[00:040]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:068] Populate tree
[01:184] Emitting code
[04:380] Total so far
[07:477]    done
[00:000] Closing types
[00:119] Saved output
[11:979] Total
Compilation succeeded

real    0m13.969s
user    0m13.780s
sys     0m0.140s
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time ~/monocvs/mono/mono/jit/mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs
modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[03:065] Loading references
[00:040]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:070] Populate tree
[01:184] Emitting code
[04:376] Total so far
[07:553]    done
[00:000] Closing types
[00:127] Saved output
[12:060] Total
Compilation succeeded

real    0m14.053s
user    0m13.800s
sys     0m0.140s
[martin@einstein mcs]$ rm -f mcs-mono.exe ; time ~/monocvs/mono/mono/jit/mono --precompile @mcs.exe mcs.exe  --fatal --timestamp -o mcs-mono.exe assign.cs attribute.cs driver.cs cs-parser.cs cs-tokenizer.cs tree.cs location.cs cfold.cs class.cs codegen.cs const.cs constant.cs decl.cs delegate.cs enum.cs ecore.cs expression.cs genericparser.cs interface.cs literal.cs
modifiers.cs namespace.cs parameter.cs pending.cs report.cs rootcontext.cs statement.cs support.cs typemanager.cs
[03:066] Loading references
[00:040]    References loaded
[00:010] Initializing Core Types
[00:003]    Core Types done
[00:000] Resolving tree
[00:068] Populate tree
[01:187] Emitting code
[04:379] Total so far
[07:467]    done
[00:000] Closing types
[00:120] Saved output
[11:969] Total
Compilation succeeded

real    0m13.977s
user    0m13.830s
sys     0m0.080s
=======

This is MCS without the member cache in TypeContainer/Interface and I usually don't get 11:xx times.

I have an AMD Athlon 900.

-- 
Martin Baulig
martin@gnome.org