Що робить опція "-J-d64" утиліти Jump Dump Dump?

Сторінка людини говорить

Якщо даний процес запущено на 64-розрядній віртуальній машині, вам може знадобитися вказувати опцію -J-d64

і це все. Деякі купи звалища включають його, без пояснень.

Більш конкретно, я намагаюся зрозуміти, якщо не вказати, що цей варіант може пошкодити мої скупки кучи (якщо вони не можуть їх прочитати). Експериментування сліпо дорожче, тому що куча велика, система є живим, і в ході операції, коли мені потрібен дамп, є певні моменти.

2

1 Відповіді

Фрагмент довідкового повідомлення jmap :

λ > jmap 
Usage:
    jmap [option] 
        (to connect to running process)
    jmap [option] 
        (to connect to a core file)
    jmap [option] [[email protected]]
        (to connect to remote debug server)

where 
               to print same info as Solaris pmap
    -heap                to print java heap summary
    ... stuff ...
    -J             to pass  directly to the runtime system

Таким чином, ви бачите, що прапорець -J передає аргументи безпосередньо JVM.

Погляньте на довідкове повідомлення jvm :

λ > java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)

where options include:
    -d32          use a 32-bit data model if available
    -d64          use a 64-bit data model if available (implies -server, only for x86_64)

Таким чином, jmap -J-d64 насправді говорить jmap , щоб запустити java -d64 , використовуючи 64-розрядну модель, а не 32-розрядну.

Якщо процес, на якому ви використовуєте jmap , не є 64-розрядним JVM, не передавайте аргумент -J-d64 .

змінити, оскільки я зробив багато jmap / jhat для усунення неполадок

Коли ви говорите, що це пошкоджено, ви маєте на увазі, що jhat насправді повідомляє про пошкоджений зліп кучи? Або це тому, що ваша звалище звалища занадто велика для читання? jhat спробує завантажити весь дамп у пам'ять, тому вам буде потрібно як мінімум вільна пам'ять, як розмір дампа. Вам може знадобитися вказати -Xmx до jhat , а також J-d64 , щоб збільшити обсяг пам'яті.

Набагато кращою альтернативою, яку я використовую, є Eclipse Memory Analyzer Tool , який робить селективне завантаження купи скидання досить ніж попередньо завантажити все. Він був набагато кращим на звалищах кулі 6+ Гб, ніж для мене jhat .

4
додано
ІТ КПІ - Java
ІТ КПІ - Java
436 учасників