Build time improvements in Xamarin.iOS 6.4
Xamarin.iOS 6.4 has significant build-time improvements , and it is now possible to send only updated bits of code to the device. See for yourself:

(source: xamarin.com )
Learn more and learn how to enable incremental builds in Rolf's post .
Video Evolve 2013
An updated and expanded version of this content can be seen in the video of the advanced assembly mechanics of iOS , which I spoke at Evolve 2013 .
Original answer
There are several factors that affect build speed. However, most of them have a greater impact on device assemblies, including the use of the managed linker you mentioned.
Managed Linker
For devices, then Link all is the fastest, then follows the Link SDK and (at the very end) Do not bind . The reason is that the linker can eliminate the code faster than the AOT compiler can create it (net gain). Also a smaller .app will load faster on your devices.
For the simulator Do not always bind faster because there is no AOT (using JIT). You should not use other binding parameters if you do not want to test them (this is still faster than building the device).
Device tricks
Creating a single architecture (for example, ARMv7) is faster than a binary FAT file (for example, ARMv7 + ARMV7). Smaller applications also mean less time to download to the device;
The default AOT compiler (mono) is much faster than LLVM compilers. However, the latter will generate better code and also supports ARMv7s, Thumb2;
If you have .app nested in your .app, it will take time to deploy / download them (every time they need to be signed) with your application. I wrote a blog post about how to get around this - it can save a lot of time if you have large assets;
Object file caching was implemented in MonoTouch 5.4. Some builds will be much faster, but others will not (when you need to clear the cache) faster (but never slower ;-). More on why this often happens here ).
Debugging the assembly takes longer due to the characters running dsymutil and, as it gets bigger, extra time to load onto devices.
By default, in release builds (you can disable it), builds of IL builds are performed. It only takes a little time - most likely it came back when deploying (a smaller .app size) to the device.
Simulation Tricks
As mentioned earlier, try to avoid links, as this will take more time and require copying assemblies (instead of a symbolic link);
Using native libraries is slower because we cannot reuse the main executable file of the general simlauncher in such cases and should ask gcc to compile it for the application (and this is slow).
Finally, when the dubious time is it! and by that I mean that you can add --time --time to your extra mtouch arguments project to see the timestamp after each operation :-)
poupou Dec 20 '12 at 2:14 2012-12-20 02:14
source share