Макет экземпляра объекта: строковые литералы? - PullRequest
2 голосов
/ 11 августа 2011

Пожалуйста, кто-нибудь может предоставить более подробную информацию о рисунке из статьи "Как CLR создает объекты среды выполнения" ?

enter image description here

Я в замешательствес разделом «строковые литералы» я не могу найти никаких причин хранить их как часть каждого экземпляра объекта, и я даже не могу вычесть то, что там действительно хранится:

# US (строка пользователя) идентификатор записи потока ?Нет, они передаются непосредственно в IL как параметр ldstr и жестко кодируются в код JITted во время выполнения.Нет необходимости хранить его как часть каждого экземпляра.

Экземпляры во время выполнения?Опять нет.Во-первых, это обычные экземпляры объектов, а внутренняя таблица - это просто корень GC , используемый для предотвращения интернирования строк GC.Во-вторых, может быть произвольное количество встроенных во время выполнения строк, поэтому у нас не будет возможности вывести Базовый размер экземпляра

Просто бессмысленную картинку и строковые литералы (независимо от авторовподразумевается) не хранятся как часть экземпляра объекта?Не знаю.

...