Как вы думаете, что общего у вопросов:
1. Как подписаться на события GC и когда эти события приходят?
2. Сколько у вас в приложении сборщиков мусора по-умолчанию?
3. Как инструментировать свое java приложение и самому написать javaagent?
Как минимум - наше домашнее задание :) В нем нужно написать свой стенд для измерения памяти, которую занимает объект (любой объект, не только Object).
Для этого мы подписались на события GC (java.lang.management.ManagementFactory.getGarbageCollectorMXBeans()), запустили System.gc () (я знаю от System.gc () пахнет серой, но мы не ее не боимся ). Подождали, когда придет уведомление о том, что GC по сигналу System.gc () сработал. Ждать пришлось два события, потому что у нас два GC: для young generation и для old generation. И сравнили память. Не для одного объекта конечно. Для 50 * 1024 * 1024.
А зачем нам инструментирование? Чтобы проверить результат.
Проверьте сами. Но учтите, instrumentation.getObjectSize возвращает "shallow" size. Интересно как мы его использовали? Приходите: набор в новую группу открыт: http://otus.ru/lessons?utm_source=ok&utm_medium=internal&utm_campaign=post&utm_term=20.04
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев