2013-06-18 2 views
3

Я знаю некоторые подробности о том, как это работает по книге Рихтера, но я хочу «почувствовать» это на практике. Я вижу несколько вариантов:Что я могу реализовать, чтобы узнать .net GC in depth

  1. Напишите свою собственную реализацию GC по стандарту .NET (шучу, это слишком хардкорный, чтобы сделать это самостоятельно :)
  2. Исследование MONO реализация GC - это есть некоторые плюсы (например, я мог бы анализировать некоторые случаи с помощью отладчика), но, с другой стороны, он не так сильно отличается от чтения книги. И, кстати, насколько я знаю, реализация MONO действительно отличается от Microsoft одной (исправьте меня, если я ошибаюсь).

Итак, любые предложения?

+2

Я согласен, что у Rotor и Mono очень разные реализации сборщика мусора по сравнению с GC CLR. С риском явного воодушевления я думаю, что моя книга («Pro .NET Performance», http://www.amazon.com/Pro-NET-Performance-Optimize-Applications/dp/1430244585) содержит более подробную информацию о сбор мусора, чем «CLR через C#». –

+1

Это не вопрос для SO. (Где техническая проблема, которую вы пытаетесь решить?) –

ответ

0

Ну, вы можете написать ресурсоемкое серверное приложение, которое даст вам суть того, что делает GC при значительной нагрузке. Вы можете выбрать все, что хотите, в идеале что-то вроде веб-сервера, сервера MMO и т. Д.

Вы увидите, как GC управляет управляемой кучей в сложных обстоятельствах (асинхронные сокеты, в частности, делают GC очень несчастным, спасибо к их использованию закрепленных ручек), и вы можете поэкспериментировать с тем, как наилучшим образом распределить различные ресурсы памяти, чтобы сделать работу с GC максимально простой.

И вы можете написать свой собственный GC, глупый GC не , что трудно.

Смежные вопросы