Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Производится ли JIT-компиляция классов FCL? / 5 сообщений из 5, страница 1 из 1
05.04.2018, 08:06
    #39625853
WinterGraveyard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производится ли JIT-компиляция классов FCL?
Недавно случайно наткнулся на одну статью, описывающую процесс загрузки и исполнения сборки. В принципе, всё то же самое описано у Рихтера, и еще много где ( вот, например ) - пример с Console.WriteLine в Program.Main, и описание - сбор типов, выделение внутренней структуры под адреса вызываемых методов, установка адресов на внутреннюю функцию JITCompiler, вызов этой функции, компиляция IL-кода в машинный, возврат к структуре, и замена адреса на адрес скомпилированного кода. Это всё понятно, но есть одно "но": Console - это класс FCL, а сборки фреймворка поставляются вместе с native images:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
D:\ngen display mscorlib

..............................................
Native Images:

mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 <debug>

- т.е. вроде как никакой JIT-компиляции здесь не нужно, машинный код для метода есть в native image. Однако все эти примеры упорно продолжают вещать про JIT-компиляцию Console.WriteLine. Поэтому, собственно, сабж.
...
Рейтинг: 0 / 0
06.04.2018, 11:25
    #39626665
ЕвгенийВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производится ли JIT-компиляция классов FCL?
Старая непонятная статья
...
Рейтинг: 0 / 0
06.04.2018, 12:10
    #39626714
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производится ли JIT-компиляция классов FCL?
WinterGraveyard,

Машинный код не содержит мета-данных, которые содержит сборка.
...
Рейтинг: 0 / 0
06.04.2018, 12:17
    #39626723
WinterGraveyard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производится ли JIT-компиляция классов FCL?
hVosttWinterGraveyard,

Машинный код не содержит мета-данных, которые содержит сборка.
Да, не содержит, я в курсе. Только зачем они нужны для джиттинга? Он же производится над реализацией конкретного метода, а нед на классом и его метаданными.
...
Рейтинг: 0 / 0
06.04.2018, 12:30
    #39626731
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Производится ли JIT-компиляция классов FCL?
WinterGraveyardДа, не содержит, я в курсе. Только зачем они нужны для джиттинга? Он же производится над реализацией конкретного метода, а нед на классом и его метаданными.

Для поддержки рефлексии.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Производится ли JIT-компиляция классов FCL? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]