Перейти к основному содержимому

Чек-лист самопроверки

Разработчику Архитектору Инженеру

Чек-лист самопроверки

  1. Понимаете ли вы, что такое «достижимый объект» и как GC определяет достижимость?
  2. Можете ли вы объяснить, почему утечка памяти возможна даже при наличии GC?
  3. Знаете ли вы, какие объекты считаются «корнями» в .NET, Java и Python?
  4. Умеете ли вы отличить утечку памяти от просто высокого потребления памяти?
  5. Понимаете ли вы разницу между подсчётом ссылок и трассировкой?
  6. Можете ли вы описать поколенческую гипотезу и её роль в GC?
  7. Знаете ли вы, какие объекты попадают в Large Object Heap (.NET)?
  8. Умеете ли вы включить Server GC в .NET-приложении?
  9. Понимаете ли вы, чем Workstation GC отличается от Server GC?
  10. Знаете ли вы, как включить фоновую сборку в .NET?
  11. Можете ли вы объяснить, что такое stop-the-world пауза?
  12. Умеете ли вы установить режим низкой задержки в .NET?
  13. Знаете ли вы, как принудительно дефрагментировать LOH?
  14. Понимаете ли вы, зачем нужен GC.RegisterForFullGCNotification?
  15. Умеете ли вы правильно использовать IDisposable и using?
  16. Знаете ли вы, какие сборщики мусора доступны в OpenJDK?
  17. Можете ли вы объяснить, почему CMS был удалён из JDK?
  18. Понимаете ли вы, как G1 делит кучу на регионы?
  19. Знаете ли вы, как задать целевую длительность паузы в G1?
  20. Умеете ли вы запустить приложение с ZGC?
  21. Понимаете ли вы, что такое colored pointers и как они работают в ZGC?
  22. Знаете ли вы, как Shenandoah перемещает объекты без остановки приложения?
  23. Умеете ли вы интерпретировать GC-логи Java?
  24. Понимаете ли вы, что такое allocation failure и как его избежать?
  25. Знаете ли вы, как работает JVM ergonomics?
  26. Умеете ли вы создать heap dump и проанализировать его в Eclipse MAT?
  27. Понимаете ли вы, почему Serial GC не подходит для серверных приложений?
  28. Знаете ли вы, как Parallel GC максимизирует throughput?
  29. Умеете ли вы настроить размер кучи в Java?
  30. Понимаете ли вы, что такое root scanning и почему он требует STW?
  31. Знаете ли вы, как работает подсчёт ссылок в CPython?
  32. Умеете ли вы объяснить, почему подсчёт ссылок не справляется с циклами?
  33. Понимаете ли вы, какие объекты отслеживаются модулем gc?
  34. Знаете ли вы, как настроить пороги сборки в Python?
  35. Умеете ли вы вручную запустить сборку в Python?
  36. Понимаете ли вы, почему gc.disable() может быть опасен?
  37. Знаете ли вы, как включить отладочный вывод GC в Python?
  38. Умеете ли вы найти цепочку удерживающих ссылок в Python?
  39. Понимаете ли вы, что такое arena allocator и pymalloc?
  40. Знаете ли вы, почему фрагментация памяти — проблема в долгоживущих Python-процессах?
  41. Умеете ли вы профилировать память в .NET с помощью PerfView?
  42. Понимаете ли вы, как использовать dotnet-counters для мониторинга GC?
  43. Знаете ли вы, как анализировать ETW-события GC?
  44. Умеете ли вы использовать JFR для записи событий GC в Java?
  45. Понимаете ли вы, как работает load barrier в ZGC и Shenandoah?
  46. Знаете ли вы, как избежать утечки памяти при работе с обработчиками событий?
  47. Умеете ли вы правильно удалять подписки на события в C#?
  48. Понимаете ли вы, почему статические коллекции — частый источник утечек?
  49. Знаете ли вы, как использовать пул объектов вместо постоянного создания/удаления?
  50. Умеете ли вы проектировать систему так, чтобы минимизировать давление на GC?
Освоение главы0%