Comments 22
Компилятор C# по умолчанию использует для членов классов размещение LayoutType.Auto, следовательно, загрузчик класса может расположить поля по своему усмотрению, чтобы минимизировать промежутки между полями.
Мне кажется, тут скорее, он будет пытаться оптимизировать: выравнивать по словам, например
0
Байты же не выровнял. Я тоже всегда думал, что все поля выравниваются по 4 байта, но по видимому всё хитрее. Интересно узнать свод правил, как JIT группирует поля в зависимости от их типа и размера. Понятно, что это внутренний механизм, который может поменяться в следующей версии, полагаться на него не стоит и всё такое.
0
Уж больно замысловатый у вас стиль изложения мыслей.
0
Замысловатый == слишком сложно воспринимается?)
0
Верно. Читается как черновик получившийся во время решения проблемы.
В первых обзацах я подумала, что пересказывают C# via CLR, но потом свелось всё к «а вот эту цифру можно увидеть вот тут и тут. Одна из низ означает бла-бла-бла».
Читая, я даже предположила, что вы занимаетесь написанием софта для мета-трейдеров (или как их там).
На мой взгляд, статья будет куда лучше восприниматся, если каждому из терминов (SyncBlock, Object Header итд.) дать точное определение.
А вы пишите следующее:
Object Header — Вновь взглянем на рисунок 1. Как видно, ObjectRef указывает на адрес, смещенный на 4 байта относительно начала ObjectInstance.
В привычных терминах, для автомобиля это бы звучало бы так:
Автомобиль — взгляните, у него есть развал и схождение. Они нужны для того, что бы он ехал.
Ну… как-то так.
В первых обзацах я подумала, что пересказывают C# via CLR, но потом свелось всё к «а вот эту цифру можно увидеть вот тут и тут. Одна из низ означает бла-бла-бла».
Читая, я даже предположила, что вы занимаетесь написанием софта для мета-трейдеров (или как их там).
На мой взгляд, статья будет куда лучше восприниматся, если каждому из терминов (SyncBlock, Object Header итд.) дать точное определение.
А вы пишите следующее:
Object Header — Вновь взглянем на рисунок 1. Как видно, ObjectRef указывает на адрес, смещенный на 4 байта относительно начала ObjectInstance.
В привычных терминах, для автомобиля это бы звучало бы так:
Автомобиль — взгляните, у него есть развал и схождение. Они нужны для того, что бы он ехал.
Ну… как-то так.
+6
Значит нужно больше конкретики в начале, а не расплывчатой информации)
Спасибо!
Буду знать)
Спасибо!
Буду знать)
+4
отличное техническое описание, что вы.
просто надо вникать, ибо тут популизмом не пахнет.
просто надо вникать, ибо тут популизмом не пахнет.
0
Тут, видимо, есть вкус и цвет, а следовательно — поспорим :) По мне, так такое внимание в первую очередь именно к деталям (развал и схождение, да — почему б и нет. Не всем же шашечки подавай) помогает получить представление всего образа в целом.
0
Материалы:MSDN
Наверно правильней сказать, что это не материалы, а оригинал статьи, которую вы попытались перевести. Во-первых, она гораздо полнее. А во-вторых, некоторым проще прочитать оригинал, чем перевод.
+4
Да, если уж взялись переводить, то переводили бы уже всю статью, хотя бы по частям. А то получился кусок, частично выдернутый из контекста.
0
Конечно это все интересно знать, но неплохо бы было увидеть примеры, как такие знания можно применить.
0
А что означает «Размещение объектов на Run-time»?
0
Стоп. А что это может значит кроме фразы «Размещение объектов на Run-time».
Я не стебусь, просто пытаюсь понять: нет представления, что такое Run-time или сама фраза сформулирована неверно?
Я не стебусь, просто пытаюсь понять: нет представления, что такое Run-time или сама фраза сформулирована неверно?
0
По моему у меня в глазах двоится. Причем зеркально симметрично ОО.
0
Sign up to leave a comment.
.NET Частичка правды о размещении объектов на Run-time