Я использую Java Visual VM для анализа производительности в приложении Mule, чтобы уменьшить объем используемой памяти.Когда я смотрю на дамп кучи, я вижу, что char [] имеет размер более 37 МБ, а String имеет размер чуть более 28 МБ.
Что мне не ясно, так это как размерстолбец учитывает объем используемой памяти.В частности, поскольку String является абстракцией char [], мне интересно, означает ли это, что некоторые из этих 37 МБ массивов символов также присутствуют в пределах 28 МБ строк или они выделены отдельно.
Кроме того, у меня также есть класс, который, как я подозреваю, занимает много памяти и содержит несколько строк, но, согласно моему дампу кучи, этот класс использует только 6,5% от общей памяти в куче.
Поэтому я предполагаю, что мой вопрос заключается в следующем: если бы я сделал свой пользовательский класс более эффективным, используя меньше объектов String, я бы увидел уменьшение объема памяти, о котором сообщалось, что он будет использоваться Strings and Char [] или просто для этого конкретного класса?
Спасибо!