Я проводил быстрый эксперимент, чтобы посмотреть, как выглядит производительность памяти моего алгоритма. Размер входных данных составляет около 2 МБ, и алгоритму требуется около 1 секунды для его запуска. Я запустил это в цикле 500 раз, чтобы посмотреть на распределение памяти.
Вот как jConsole показывает использование памяти:
Как вы можете видеть, использование памяти кучи увеличивается (вроде как экспоненциально) каждые два раза перед запуском GC (даже если входные данные одинаковы).
Кто-нибудь знает, ожидается ли это и почему это происходит? Это какая-то оптимизация, сделанная JVM?
Спасибо!