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 [EMAIL PROTECTED] _______________________________________________ Mono-list maillist - [EMAIL PROTECTED] http://lists.ximian.com/mailman/listinfo/mono-list
