| 

.NET C# Java Javascript Exception

2
Hallo,

ich habe gelesen, dass der JIT-Compiler in .NET nicht ganze Assemblies JITtet sondern nur einzelne Methoden (was Sinn ergibt). Stimmt das?

Dann stellt sich die Fragen, wie das mit Assemblies im Global Assembly Cache aussieht. Die kann man doch vollständig beim Hinzufügen JITten (ngen.exe) oder genauer gesagt AOTten (Ahead of Time). Der Nachteil, es sei dann Plattformabhängig ist im GAC ja egal, oder?

Gruß, Thomas
News:
23.02.2011
ThomasMentzel 123 5
2 Antworten
2
Die Assemblies im GAC liegen immer als IL-Code vor. Sie werden bei jeder Ausführung Just-in-Time in nativen Code kompiliert.

Assemblies können jedoch auch mit Ngen.exe in nativen Code kompiliert werden. Ngen erstellt beim Kompilieren eine neue Datei die lediglich nativen Code enthält. Diese wird im Verzeichnis Windows\Assembly\Native-Images_XXXXXXXX abgelegt (xxxxxx = enthält die Version der CLR und Info ob 32 oder 64 Bit.

Ich bin mir fast sicher dass diese nativen Assemblies nicht mit einem Setup ausgeliefert werden können. Das würde aus verschiednen Gründen keinen Sinn machen.
23.02.2011
Maik_1978 674 1 8
0
Ergänzend zu Maiks Antwort: man kann die nativen Assemblies zwar nicht mit einem Setup ausliefern, aber es ist möglich, sie im Zuge der Installation erstellen zu lassen. Dieser Blog erklärt, wie das z.B. für MSI-Pakete geht und geht auch auf die Hintergründe ein.
23.02.2011
Matthias Hlawatsch 13,2k 4 9

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH