Огромные аноновые блоки в pmap - PullRequest
0 голосов
/ 10 апреля 2010

Я делаю pmap для процесса tomcat и вижу несколько огромных аноновых блоков. Из того, что я прочитал, блоки anon используются для стеков потоков и JNI. У меня очень умеренное количество потоков. Как я могу узнать, что вызывает эти огромные аноновые блоки?

00000000ee0d0000 26752K rwx-- [anon]

00000000efaf0000 33792K rwx-- [anon]

00000000f1bf0000 25856K rwx-- [anon]

00000000f3530000 39680K rwx-- [anon]

(на заметке, pmap - правильный способ измерить, сколько памяти выделено для tomcat?)

Ответы [ 2 ]

0 голосов
/ 13 августа 2010

У меня та же проблема. По pmap я нашел 697 блоков [anon] в моем java-приложении, которое использовало JNI. Это исчерпало память. Когда я комментирую следующие коды строк, проблема исчезает.

jEnv-> CallBooleanMethod (m_jobj, jmid, jData);

метод - передача объекта из c ++ в сторону java, он вызывается много раз (> 10000000)

Но я не могу это прокомментировать, мне нужно вызвать метод.

Это вызвано JDK Bug6200343 (утечка памяти во многих вызовах jni (NewString и т. Д.)? моя версия JDK Java-версия "1.6.0_19" Java (TM) SE Runtime Environment (сборка 1.6.0_19-b04) Серверная виртуальная машина Java HotSpot (TM) (сборка 16.2-b04, смешанный режим)

0 голосов
/ 10 апреля 2010

Отображения анонимной памяти используются практически для всего, что требует некоторой динамически выделяемой памяти, включая, например, стеки нитей, но и куча.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...