Приложение Java вызывает C ++ DLL через JNI; как лучше всего выделить память?

Основное резюме вопроса: Как мне лучше всего оптимизировать выделение памяти, чтобы выделить столько памяти DLL, к которой я обращаюсь через JNI, возможный? Что я должен стремиться минимизировать, что я должен стремиться максимизировать и т. Д.

СИСТЕМА: Запуск JBoss 6 как службы Windows 32 в 32-разрядной системе с 4 ГБ ОЗУ. Я понимаю, что существуют максимальные ограничения на память для Java Heap. JVM - это JRE1.6.0_26

СЕРВИС: Установленное под JBoss веб-приложение, которое получает запросы от клиентов; каждый запрос вызывает встроенную библиотеку C ++ через JNI для обработки файла изображения тем или иным способом.

ПРОБЛЕМА: Иногда с большими или некоторыми (не всеми) образами LZW-сжатия вызывающий класс java получает сообщение о том, что DLL испытала истощение глобальной памяти и не смогла завершить запрошенный процесс.

На сервере больше ничего не запущено, кроме основных процессов Windows.

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

-Xms1024m -Xmx1024m -Xss1024k -XX: MaxPermSize = 128m

Я пытаюсь определить наилучшие настройки памяти, чтобы выделить как можно больше ресурсов в JNI DLL, насколько я понимаю, JNI не использует память, выделенную для Java Heap.

Я прочитал их, но не нашел их полезными для ответа на свой вопрос:

Java JNI: распределение / разделение памяти

Можно ли использовать jconsole для выявления утечек памяти в объектах JNI C ++?

Два предоставленные в настоящее время ответы не касаются основного вопроса.

Текущая память сервера JBoss после одной недели с параметрами JVM, установленными, как указано выше (TaskManager указывает процесс java.exe на 750 672 КБ)

Total Memory Pools: 5

Pool: Code Cache (Non-heap memory)

    Peak Usage : init:2359296, used:7317312, committed:7438336, max:50331648
    Current Usage : init:2359296, used:7306496, committed:7438336, max:50331648


        |---------| committed:7.09Mb
        +---------------------------------------------------------------------+
        |/////////| | max:48Mb
        +---------------------------------------------------------------------+
        |---------| used:6.97Mb


Pool: PS Eden Space (Heap memory)

    Peak Usage : init:268500992, used:354811904, committed:354811904, max:355991552
    Current Usage : init:268500992, used:270153472, committed:354091008, max:354156544


        |--------------------------------------------------------------------| committed:337.69Mb
        +---------------------------------------------------------------------+
        |///////////////////////////////////////////////////// || max:337.75Mb
        +---------------------------------------------------------------------+
        |----------------------------------------------------| used:257.64Mb


Pool: PS Survivor Space (Heap memory)

    Peak Usage : init:44695552, used:44694896, committed:78643200, max:78643200
    Current Usage : init:44695552, used:0, committed:1835008, max:1835008


        |---------------------------------------------------------------------| committed:1.75Mb
        +---------------------------------------------------------------------+
        | | max:1.75Mb
        +---------------------------------------------------------------------+
        | used:0b


Pool: PS Old Gen (Heap memory)

    Peak Usage : init:715849728, used:123671968, committed:715849728, max:715849728
    Current Usage : init:715849728, used:104048648, committed:715849728, max:715849728


        |---------------------------------------------------------------------| committed:682.69Mb
        +---------------------------------------------------------------------+
        |////////// | max:682.69Mb
        +---------------------------------------------------------------------+
        |---------| used:99.23Mb


Pool: PS Perm Gen (Non-heap memory)

    Peak Usage : init:16777216, used:91989664, committed:134217728, max:134217728
    Current Usage : init:16777216, used:90956472, committed:90963968, max:134217728


        |----------------------------------------------| committed:86.75Mb
        +---------------------------------------------------------------------+
        |//////////////////////////////////////////////| | max:128Mb
        +---------------------------------------------------------------------+
        |----------------------------------------------| used:86.74Mb

7
задан Community 23 May 2017 в 11:44
поделиться