Я пишу Java-программу, которая вызывает некоторые API-интерфейсы jni в собственной библиотеке. Родная библиотека тоже написана мной. Версия jdk - jdk1.7_0_75. По результату команды "top" я обнаружил, что память, используемая программой, продолжает увеличиваться. Я использовал «pmap -d» для проверки отображения памяти и обнаружил, что запись в результате «pmap -d» весьма подозрительна. Вот запись:
00002b3373f63000 162388 rw--- 00002b3373f63000 000:00000 [ anon ]
Значение второго столбца продолжает расти и всегда увеличивается на 4 КБ каждый раз, когда я выполняю команду «pmap -d». Итак, как мне определить причину этой проблемы с утечкой памяти? Это вызвано собственным кодом?
@ OlivierGrégoire, нативный код слишком длинный, два файла cpp. Я не знаю, какая строка кода могла вызвать проблему. Как мне показать вам свой код?
Скорее всего, вам не нужен весь ваш код, чтобы продемонстрировать проблему. Вам нужно сузить круг вопросов, и при этом вы можете сами найти проблему.
В качестве альтернативы см. stackoverflow.com/questions/33334126/…, stackoverflow.com/questions/8450792/…, docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/….




"Это вызвано собственным кодом?" Как мы можем знать, если кода нет. Мы можем помочь вам найти проблему, но нам нужно знать ваш код для расследования.