Als .net reift, wurden die JIT-Fähigkeiten verbessert, um brilliant faul zu sein. Das heißt, keinen Maschinencode erzeugen, wenn er nicht benötigt wird. Im Allgemeinen ist das eine gute Sache.Forcing Aggressive JIT
Allerdings, wenn ich versuche, warmup an application mag ich eine aggressive JIT-Haltung bevorzugen. Gibt es eine Möglichkeit, eine .net-Anwendung so zu konfigurieren, dass alle Methoden einer Klasse JIT kompiliert werden, einfach weil die Klasse erstellt wurde?
Wenn ja, könnte mein bevorzugtes Objekt-Creation-Muster das Objekt-Diagramm meiner Anwendung instanziieren und ich hätte alles gleichzeitig JIT-fähig. Das wäre nett.
Kann dies getan werden?
Sie können .NET Native betrachten. Afaik, im Moment ist es nur für Windows Store-Apps, aber sie werden später auf andere Typen erweitert. http://msdn.microsoft.com/en-us/library/dn584397(v=vs.110).aspx –
Sie könnten ngen verwenden oder es könnte manuell durchgeführt werden mein Aufruf 'RuntimeHelpers.PrepareMethod' pro Methode. –
Ist 'Generieren von Maschinencode [wenn benötigt] zur Laufzeit' ein grundlegender Teil eines JIT-Compilers? Es gibt immer den [Native Image Generator] (http://msdn.microsoft.com/en-us/library/6t9t5wcf (v = vs.110) .aspx), aber natürlich gibt es die [Kompromisse] (http: //blogs.msdn.com/b/clrcodegeneration/archive/2007/09/15/to-gen-or-not-to-ngen.aspx) zwischen den beiden. – PoweredByOrange