Conference in Kyiv for Java Practitioners
В основном
речь шла о footprint.
Многие,
наверное, знают о существовании такой полезной вещи как GC. Он
обладает 3-я ключевыми характеристиками: throughput, predictability, footprint. Для получения
более подробной информации стоит просмотреть доклад, а здесь приведем его основные
тезисы, которые стоит запомнить.
- · Возможно, не все знают, что откалибровать коллектор можно на выигрыш только по двум ключевым характеристикам, упомянутым высше.
- · Чем больше памяти доступно, тем GC продуктивней и резвее работает (более редкие сборки, менше затраты).
- · Распаковка «OOP»-совых указателей – «дешевая» операция.
- · Неграмотное использование «сжатых» указателей чревато увелечением размера данных в 1.4 раза (работаю только до 32Гб) -ХХ:+UseCompressedOops.
- · Грамотно используйте типы ссылок (Strong, Soft, Weak, Phantom)!
- · Организуете кэширование на уровне вашего приложения с использованием «мягких» ссылок, аля GC-friendly cache!
- · Не используйте финализаторы! Никогда не используйте финализаторы! Более безопасное и практичное решение – использование «фантомных» ссылок.
- · Пользуйтесь параметром агрессивности очистки: -XX:SoftRefLRUPolicyMSPerMB !
- · Выставляйте ожидаемый размер коллекции при создании
- · ThreadLocal + ThreadPool = мусор в пулах.
- · Используйте NIO !
Yaroslav Trokhymenko, DataArt copyright (2013)

Комментарии
Отправить комментарий