Используя Runtime#totalMemory
и Runtime#gc
, вы сможете получить очень близкое приближение. Пример:
Runtime.getRuntime().gc();Runtime.getRuntime().gc();Runtime.getRuntime().gc();
long totalUsed = Runtime.getRuntime().totalMemory();
BufferedImage image = ...
Runtime.getRuntime().gc();Runtime.getRuntime().gc();Runtime.getRuntime().gc();
totalUsed = Runtime.getRuntime().totalMemory() - total;
Многократный вызов gc
увеличивает вероятность того, что сборщик мусора действительно запустится, поскольку gc
- всего лишь предложение. Вызов gc
в этом примере гарантирует, что никакие объекты, которые были бы собраны, не добавляются к использованию памяти.