Клиент жалуется на утечку памяти в нашем Java-приложении.
Несмотря на все мои попытки воспроизвести его среду, конфигурацию и использование, я не смог воспроизвести и, таким образом, идентифицировать утечку.
Я бы хотел пойти другим путем ... Вместо того, чтобы пытаться воспроизвести его, возможно, я мог бы попросить его сгенерировать некоторое представление его кучи, которое позволило бы мне идентифицировать утечку. 1007 *
Под управлением клиента, который отправит его мне, к этому предъявляются следующие требования:
- Не должно содержать конфиденциальную информацию
- должно быть достаточно маленьким, чтобы его можно было отправить через интернет
- Должен генерироваться легко доступным инструментом (было бы лучше, если бы он был в дистрибутиве Java)
Полный дамп кучи невозможен из-за 1. и 2.
Прежде всего, это должно позволить мне найти утечку. Таким образом, он должен по крайней мере показать размер оставшейся кучи для объектов каждого класса (размер самого себя + все, на что он ссылается).
jmap -histo
определенно недостаточно хорош.
num #instances #bytes class name
----------------------------------------------
1: 14156 577318512 [B
2: 9196 47439696 [I
3: 83396 9809992 [C
Что-то подобное вообще полезно? Я так не думаю.