On Sun, Apr 15, 2012 at 9:56 AM, <[email protected]> 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: > > >PerfDrawing3.exe > > 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 a slowdown. > > >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. > www.mono-pro > ject.com > 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 - [email protected] > http://lists.ximian.com/mailman/listinfo/mono-list > -- Thanks, Justin Holewinski
_______________________________________________ Mono-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-list
