JDK 1.6.0_26의 VisualVM을 사용하여 Tomcat에서 실행되는 Java 웹 응용 프로그램을 프로파일 링하고 있지만 VisualVM은 종종 스냅 샷을 찍고 Netbeans에 더 많은 메모리를 제공하기 위해 -Xmx 스위치를 사용하는 데 충분한 메모리가 없다고 말합니다. . 문제는 Netbeans 외부에서 VisualVM을 실행하고 있는데 어떻게 jvisualvm.exe에 JVM 인수를 제공 할 수 있습니까?
답변:
메모리 설정을 수정할 수 있어야합니다. %JDK_HOME%\lib\visualvm\etc\visualvm.conf
Xms
및 Xmx
에있는 default_options
라인.
-J-Xms
하고 -J-Xmx
올바른 옵션 이름이 실제로? 는 IS -J
이이 conf의 파일에 지정된 경우 접두사가 필요?
-J-Xms24m
&가 -J-Xmx256m
있으므로 올바른 옵션 이름이라고 가정합니다. 당신은 아마 ... 추가 정보를 원하시면 visualvm.conf 서식을 지정하는 방법 구글 수
-J
접두사가 포함되지 않았으므로 확인하고 싶었습니다 .
/usr/lib/jvm/java-6-sun/lib/visualvm/etc/visualvm.conf
.
또는 이것도 작동한다고 생각합니다.
jvisualvm.exe -J-Xmx512m
(또는 필요한 금액)
일회성 설정의 경우 .exe 명령 줄의 -J 또는 기본값 변경을위한 다른 답변에 기록 된 .conf 파일
jvisualvm.exe -J-Xms256m -J-Xmx1024m
명령 프롬프트에서 시도한 결과 프로세스를 검사 할 때 인수가 적용되지 않았 음을 알 수있었습니다.
-Xms24m -Xmx192m -Dsun.jvmstat.perdata.syncWaitMs=10000 -Xms256m -Xmx1024m
나는 시작했다
jvisualvm -J-Xms1024m -J-Xmx2048m
그리고 그것은 작동했습니다.
Mac에서는이 파일을 편집하여 구성 할 수 있습니다.
/Applications/VisualVM.app/Contents/Resources/visualvm/etc/visualvm.conf
visualvm_default_options="-J-client -J-Xms4096m -J-Xmx5120m -J-XX:+IgnoreUnrecognizedVMOptions -J-Dnetbeans.accept_license_class=com.sun.tools.visualvm.modules.startup.AcceptLicense -J-Dsun.jvmstat.perdata.syncWaitMs=10000 -J-Dsun.java2d.noddraw=true"
Mac OSX 10.12 이상
https://visualvm.github.io/download.html 에서 visualvm dmg
을 다운로드 하고 디렉토리 로 이동 한 경우 . 위치 에서 구성 파일을 찾을 수 있습니다 . 이 구성 파일에서 다음을 변경할 수 있습니다.Applications
visualvm.conf
Applications/VisualVM.app/Contents/etc/visualvm.conf
visualvm_default_options="-J-client -J-Xms24m -J-Xmx256m
to (예)
visualvm_default_options="-J-client -J-Xms24m -J-Xmx2048m