Что делает опция «-J-d64» утилиты сброса кучи jmap?

На странице человека написано:

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

вот и все. Некоторые кучи heap dump включают это, без объяснения причин.

В частности, я пытаюсь выяснить, не указывает ли этот параметр на повреждение кучи (jhat не может их прочитать). Эксперименты вслепую дорогостоящие, так как куча большая, система является живой, и во время работы, когда мне нужна свалка, есть определенные точки.

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 

Таким образом, вы видите, что флаг -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
добавлено
pro.jvm
pro.jvm
3 503 участник(ов)

Сообщество разработчиков Java Scala Kotlin Groovy Clojure Чат для нач-их: @javastart Наш сайт: projvm.com projvm.ru Наш канал: @proJVM Вакансии: @jvmjobs Конфы: @jvmconf

Java & Co
Java & Co
2 370 участник(ов)

Можно обсуждать с матом и без всё, что касается жабы, вплоть до холиваров. НЕ ИМЕЕТ ОТНОШЕНИЯ К САЙТУ JAVARUSH.RU ПРАВИЛА - https://t.me/javarush/75723 Вакансии сюда - https://telegram.me/joinchat/B7IzvUCnfo6d8t3yIxKguQ По вопросам - @thedude

learn.java
learn.java
1 888 участник(ов)

Чат для начинающих и не только Статистика: https://combot.org/chat/-1001083535868 Основной чат - @jvmchat

Java Underground
Java Underground
169 участник(ов)

https://vk.com/javatutorial

Javanese Questions
Javanese Questions
109 участник(ов)

Чат предназначен для обмена знаниями строго в формате в вопрос-ответ. Тема — Java, Kotlin и Android. Вопрос должен быть предварительно прогуглен, понятно и грамотно сформулирован, помечен хэштегами. Ответ — тем более. Куски кода размером в несколько строк можно писать прямо здесь, для больших кусков кода стоит использовать http://gist.github.com/, http://pastebin.com/, https://codeshare.io/ или любой аналогичный сервис. В некоторых случаях можно прикреплять скриншоты. Стикеры и гифки запрещены. Дополнять и уточнять вопросы и ответы — редактированием исходного сообщения. Обсуждения должны приводить к редактированию вопроса/ответа и удаляться. По хештегам можно искать существующие вопросы и овтеты: #вопрос #ответ #git #generics #java #server #awt #javafx #swing #kotlin #anko #tornadofx #ktor #android #recyclerView #performance #arch #network #permissions #storage #async