Финализация, слабые, мягкие и фантомные ссылки и их влияние на сборку мусора в Java VM
Финализация и слабые, мягкие и фантомные ссылки Некоторые приложения взаимодействуют со сборкой мусора с помощью финализации и слабых, мягких или фантомных ссылок. Эти функции могут создавать артефакты производительности на уровне языка программирования Java. Примером этого является завершение для закрытия файловых дескрипторов, что делает внешний ресурс (дескрипторы) зависимым от скорости сбора мусора. Полагаться на сборку мусора для управления ресурсами, отличными от памяти, почти всегда плохая идея. Явная сборка мусора Другой способ, с помощью которого приложения могут взаимодействовать со сборщиком мусора, - это явный вызов полной сборки мусора с помощью System.gc(). Это может привести к выполнению основной сборки, когда в этом нет необходимости (например, когда достаточно небольшой сборки), и поэтому в целом следует избегать. Влияние производительности явных сборщиков мусора можно измерить, отключив их с помощью флага -XX:+DisableExplicitGC, который заставляет виртуальную маш...