.Net Framework Class библиотеки в GAC компилират ли се всеки път към Native Code? Или ще се зареди директно от Native Image Directory?

Четох книгата CLR Via C# и в нея с помощта на NGen.exe научих, че мога да компилирам моите асембли в Native Image. Това повишава производителността. Въпреки това собственият код е персонализиран за моята архитектура.

Когато отворих Native Image Directory
C:\Windows\assembly\NativeImages_v4.0.30319_64\System\d6591361d8701ff6eb6a9df223c24684

Намерих Native Images за всички вградени библиотеки с класове на .net framework.

Така че въпросът ми е Ще се използва ли директно това Native Images в паметта, когато нашето приложение препраща към такова?

Освен това инсталаторът на .net framework създава собствените изображения на тези библиотеки от класове, които се възползват напълно от CPU архитектурата.

Благодаря предварително !!!


person Dilip Nandakumar    schedule 24.04.2015    source източник


Отговори (1)


Да, рамковите библиотеки не се променят. Те ще бъдат заредени от оригиналния кеш на изображения.

Можете сами да проверите това, като проверите пътя на заредените модули. Инструменти като process explorer могат да се използват за преглед на заредените модули за процеса .

Например: В моята машина mscorlib се зарежда от

C:\Windows\assembly\NativeImages_v4.0.30319_32\mscorlib\blahblahblah\mscorlib.ni.dll

Освен това инсталаторът на .net framework създава собствените изображения на тези библиотеки от класове, които се възползват напълно от CPU архитектурата.

Не съм сигурен какво имаш предвид тук. Инсталаторът не прави нищо тук. Това е ngen.exe, който създава собствените изображения. Така че, да, той ще създаде машинен код, който е най-подходящ за процесорната архитектура на машината.

person Sriram Sakthivel    schedule 24.04.2015