Учитывая объект Java, как я могу получить список объектов, ссылающихся на него?Получение списка объектов, относящихся к объекту
Должны быть механизмы расширения в GC для выполнения такого рода вещей, просто не могут найти их.
Учитывая объект Java, как я могу получить список объектов, ссылающихся на него?Получение списка объектов, относящихся к объекту
Должны быть механизмы расширения в GC для выполнения такого рода вещей, просто не могут найти их.
Я не уверен, что именно то, что вам нужно, просто доступно.
JPDA (архитектура отладки Java-платформы) позволяет создавать отладчики, поэтому является хорошей отправной точкой, если вы хотите вникать в внутренности. Есть blog on the JPDA, что также может оказаться полезным. Обратитесь к Sun Developer Network JPDA page за ссылки на документацию, часто задаваемые вопросы, примеры кода и форумы.
Два интерфейса, которые могут быть хорошими отправными точками являются:
Я не думаю, что существует такой механизм, и нет реальной причины, по которой GC понадобится.
Если вы ищете утечку памяти, я считаю, что анализ кучи свалок с Eclipse MAT будет очень полезным. Вы можете выбрать объект и запросить пути к «GC-корням», т. Е. Показать мне все цепи ссылок, которые не позволяют этому объекту собираться мусор.
Это зависит немного от того, как вы хотите использовать его, но если вам это нужно, чтобы анализировать использование памяти, принимая heapdump и открыть его в MemoryAnalyzer или JHat, вероятно, даст вам необходимую вам информацию. Различные способы получения кучи можно найти here.
GC не поддерживает это, хотя API JDPA это делает. Но я бы очень осторожно относился к подобным вещам в приложении Java. Это, вероятно, будет чрезмерно дорогостоящим как во времени, так и в памяти.
GC должен знать, какие ссылки существуют для объекта, чтобы знать, собирать ли его мусор или нет. – notnoop
@msaeed: Нет, GC должен знать, ссылается ли объект или нет, ему не нужно ничего знать о том, какие объекты хранят ссылку, если он находит одну ссылку во время отметки (в зависимости от стратегии gc, конечно) объекты остаются живыми и что все, что ему нужно знать. – Fredrik
@Fredrik: Итак, как вы объясняете круговые ссылки, собираемые мусором? – zakovyrya