Улучшение GC путем отсылки объектов - PullRequest
1 голос
/ 27 июля 2011

Относительно эффективности сбора мусора: есть ли какая-то выгода в том, чтобы намеренно защищать объект от того, чтобы он выпал из области видимости?Будет ли JVM на самом деле делать что-то по-другому, если я специально установлю для объекта значение null?

Продолжая эту идею, стоит ли очищать ссылки Soft и / или Phantom на усилия, направленные на улучшение производительности, связанной с GC?Я предполагаю, что код, заполненный фантомными ссылками, указывает на проблему больше, чем GC, конечно, может решить.

Ответы [ 3 ]

2 голосов
/ 27 июля 2011

Только если вы попытаетесь выделить что-то между , когда оно разыменовывается и выпадает из области видимости.

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

1 голос
/ 27 июля 2011

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

Помощь ГК, вероятно, всегда является хорошей практикой, хотя она может не дать значительных результатов.Однако, думая о том, как работает ГХ поколений, теория говорит, что помощь ГХ должна иметь значение, поскольку удаление старых объектов стоит дороже, чем новых.

0 голосов
/ 27 июля 2011

Большинство объектов, которые вы явно разыменовываете, выпадают из области видимости в конце вызова данного метода. Однако, прежде чем это даже стало проблемой, компилятор, вероятно, выполнил бы escape-анализ и разложил бы его на примитивы. Чистый выход - не пытайтесь быть умнее, чем компилятор или сборщик мусора. Просто успокойтесь, что точка доступа сочла нас слишком примитивными, чтобы представлять угрозу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...