sidristij / dotnetbook

.NET Platform Architecture book (English, Chinese, Russian)
http://kb.clrium.ru/ru/readme.html
Other
2.37k stars 262 forks source link

Запрос правок от сообщества: GC Intro #102

Open sidristij opened 5 years ago

sidristij commented 5 years ago

Здравствуйте, Станислав! Читаю вашу статью: habr.com/ru/company/clrium/blog/464169 Есть несколько замечаний:

  1. «мы пляшем от корней, уходя вглубь графа через исходящие поля объекта» — тяжелая для восприятия фраза. Так и не понял, что она значит.
  2. «Указатель + размер против SyncBlockIndex + VMT + какое-либо поле — в случае объекта)». Что такое SyncBlockIndex, VMT? В статье ни слова — если это есть в книге в предыдущих главах, то вопрос снимается, но все же хотелось расшифровки аббревиатур.
  3. «объекты будут случайно проваливаться в старшее поколение (если GC сработал „прям вот сейчас, во время яростного выделения памяти под множество объектов“).» Не совсем понятен процесс «проваливания». В целом это относится ко всему абзацу.
  4. Хотелось бы увидеть картинки. С ними восприятие улучшилось бы. P.S. Я плохо знаю основы работы с GC, но статья в некотором роде приоткрыла завесу. Большое спасибо. Если хотите, то могу посидеть(углубится в тему в т.ч. в другие источники) и более детально помочь проработать статью, чтобы она стала более доступной для понимания.
Sfinks7s1 commented 4 years ago

подброшу вопрос, не открывая нового issue.

  1. в разделе книги "Переопределяемые методы и наследование" в примере использована переменная int secret = 666. Исходя из описания примера после манипуляций с приведением значимых типов WidthHolder.Secret должен быть 666 или я некорректно трактую описанное. т.к. по итогу WidthHolder.Secret = 0, инициализируется только WidthHolder.Width