суббота, 10 октября 2015 г.

Что нужно помнить про работу Garbage Collector в .Net

На прошлой неделе я решил освежить в памяти то, как устроена сборка мусора в .Net Framework. Эта животрепещущая тема однозначно стоит того, чтобы потратить некоторое время для ее углубленного изучения. Кроме того, стоит отметить, что практически ни одно интервью на позицию .Net developer сегодня не обходится без вопросов по Garbage Collector.

После прочтения нескольких книг и статей решил написать список вопросов на тему Garbage Collector, по которым можно будет в дальнейшем освежать в памяти аспекты его работы. Если вы не смогли разобраться по любому из пунктов, пишите в комментариях, будем разбираться вместе.

  1. Алгоритм работы Garbage Collector
  2. Как определяется, где будет размещен в памяти вновь создаваемый объект?
  3. В каких случаях запускается сборка мусора
  4. Какие объекты классифицируются как roots
  5. LOH. Фрагментация памяти. Когда объекты попадают в LOH? Когда массив double попадают в LOH?
  6. Поколения
  7. Finalization list и freachable queue
  8. Resurrection
  9. Dispoze pattern
  10. GC.SuppressFinalize
  11. GC.ReRegisterForFinalize
  12. GC.WaitForPendingFinalizers
  13. Параметры в app.config: gcServer и gcConcurrent. Сколько в серверном режиме выделяется куч и как изменяются лимиты поколений. GC LatencyMode
  14. CriticalFinalizerObject class
  15. SafeHandle Class
  16. WeakReference: short and long
  17. GC.RegisterForFullGCNotification
  18. Card Table
  19. GCHandle, Pinned, fixed

Комментариев нет:

Отправить комментарий