[Mono-list] Mono VM speed
justin.holewinski at gmail.com
Mon Apr 16 04:15:17 UTC 2012
On Sun, Apr 15, 2012 at 9:56 AM, <pinggi at centrum.cz> wrote:
> Hi, I have 'problem' with mono engine speed. I developed and compiled app
> on Win7. It uses GTK# + Cairo to draw animation of 5 000 rotating lines in
> full screen. I compiled it under Monodevelop with Default Runtime /
> Release|x86 profile.
> Now if I run it from command line like this:
> It runs under .Net fw 4.0 and I get 26 FPS (one frame in 38 ms).
> If I run it under Mono like this:
> >mono PerfDrawing3.exe
> I get 10 FPS (97ms per frame) => 2,5x slower!
> I tried some optimization mono parameters like:
> mono --optimize=all PerfDrawing3.exe
> mono --optimize=simd PerfDrawing3.exe
> mono --optimize=sse2 PerfDrawing3.exe
> mono --llvm PerfDrawing3.exe
> mono --gc=sgen PerfDrawing3.exe
> ...but still the same result. I tried to aot it, but without success too.
> Probably it is possible only on Linux platform :-(
Is your code doing a lot with floating-point values?
If so, it could be a floating-point precision issue. I've found that the
Mono JIT emits double-precision instructions (addsd, mulsd, etc.) for
single-precision types, while the Microsoft compiler uses the
single-precision versions (addss, mulss, etc.). This can easily cause such
> >mono --aot=full -O=all PerfDrawing3.exe
> Mono Ahead of Time compiler - compiling assembly PerfDrawing3.exe
> Code: 23432 Info: 461 Ex Info: 1466 Unwind Info: 103 Class Info: 1041 PLT:
> 167 G
> OT Info: 1756 GOT: 936 Offsets: 1330
> Executing the native assembler: as -o \AppData\Local\Temp\mono_
> aot_a06524.o \AppData\Local\Temp\mono_aot_a06524
> 'as' is not recognized as an internal or external command,
> operable program or batch file.
> AOT of image PerfDrawing3.exe failed.
> Here is my version string:
> >mono -V
> Mono JIT compiler version 2.10.8 (tarball)
> Copyright (C) 2002-2011 Novell, Inc, Xamarin, Inc and Contributors.
> TLS: normal
> SIGSEGV: normal
> Notification: Thread + polling
> Architecture: x86
> Disabled: none
> Misc: softdebug
> LLVM: supported, not enabled.
> GC: Included Boehm (with typed GC and Parallel Mark)
> I quite surprised that llvm is "not enabled" and GC is "Boehm". It is by
> default I hope and can be changed by --llvm and --gc switches.
> Well, is there anything what I missed or Mono 2.10.8 @ Win7 is 2,5x slower
> than .Net Fw 4.0 VM?
> Mono-list maillist - Mono-list at lists.ximian.com
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Mono-list