|
|
|
|
|
by blucz
5507 days ago
|
|
I have a lot of experience using mono on mobile platforms, including webos, ios, and android. We also port to mac/windows and a number of other ARM-based linux platforms. If you go with mono, the most striking thing you will notice is increased startup time. On iOS with full AOT this effect is less pronounced, but on webos/android even tiny mono apps have 1-3 seconds of black screen at startup since there's a lot of JIT/metadata work to be done. On darwin platforms, we've found that mono's garbage collector pauses unmanaged threads at inconvenient times and were forced to move audio playback into a separate process to prevent glitches. This only mattered with large numbers of live objects (>500k), but it did come into play. The new SGen collector may fix this, but it still (as of 2.10.2) crashes too often to be used. Memory usage is noticeably higher than for comparable objective-c apps, but is not the end of the world. Once your app is up and running, the mono runtime is plenty fast enough for most things. We even do some light DSP in C# on these platforms. It's better than you would think. On a related note, just because you're using C#/.net doesn't mean that you can code like you're in the desktop/server world. You still need to focus on doing as little work possible per screen displayed to get the snappiest possible user experience. |
|