자바 원 격 디 버 깅 및 JVM 변조 도구
1. 디 버 깅 프로그램 을 디 버 깅 서버 로 사용 합 니 다. (로 컬 에서 원 격 서버 를 주동 적 으로 연결 하려 면 다음 명령 으로 원 격 서버 jvm 에서 디 버 깅 모드 를 켜 야 합 니 다)
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8765
그리고 eclipse 를 사용 하여 프로젝트 를 열 고 정지점, 오른쪽 단추 - debug - as - remote java 응용 프로그램 을 설정 하여 remote 실례 를 새로 만 듭 니 다.이름 이 마음대로 되 고 프로젝트 이름 이 선택 되 지 않 으 며 해당 하 는 서버 ip 와 디 버 깅 포트 번 호 를 입력 합 니 다.
2. 디 버 깅 클 라 이언 트 (로 컬 디 버 깅 연결 포트 를 열 어 서버 가 로 컬 에 주동 적 으로 연결 하도록 합 니 다).
메뉴 Run - debug configurations - remote java application, remote 인 스 턴 스 를 새로 만 듭 니 다.connect Type 을 socket Listen (기본 socket attach, 예 를 들 어 1) 으로 선택 하고 포트 번호 8000 을 설정 하 며 마지막 으로 서버 에서 다음 명령 을 실행 합 니 다.
-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000
메모: eclipse 에 소스 코드 를 불 러 옵 니 다.
eclipse 특수 정지점 디 버 깅:
1. 함수 정지점 – 함수 가 실행 되 기 전이 나 함수 가 종료 되 기 전에 프로그램의 실행 을 중단 할 수 있 습 니 다.
예 를 들 어 eclipse 에서 커서 가 함수 에 서 있 으 면 메뉴 - 'Run -' toggle method breakpoint 는 함수 정지점 을 설정 하고 마지막 으로 오른쪽 키 함수 정지점 - 'breakpoint properties 설정 이 Or 에 들 어가 서 종료 합 니 다.다음 정지점 설정 은 유사 합 니 다.
2. 조건 정지점 – 정지점 을 촉발 하 는 조건 을 지정 하여 매번 반복 적 으로 정지점 을 촉발 하여 디 버 깅 작업 효율 을 낮 추 는 것 을 피 할 수 있 습 니 다.
정지점 직접 설정, 오른쪽 단추 - "breakpoint properties -" conditional
3. 정지점 감시 - 데이터 에 접근 할 때 프로그램의 실행 을 중단 할 수 있 습 니 다.
4. 이상 정지점 – 프로그램 이 지정 한 이상 이 발생 했 을 때 프로그램의 실행 을 중단 하고 가장 먼저 문제점 을 발견 합 니 다.
5. 형식 정지점 – 프로그램 이 어떤 종 류 를 불 러 오 려 고 할 때 프로그램의 실행 을 중단 합 니 다.
JVM 변조
GC 프로필:
• 모든 자바 대상 은 자바 더미 위 에 분 배 됩 니 다.
• 자바 에 서 는 쓰레기 회수 메커니즘 을 사용 하여 인용 되 지 않 은 대상 을 회수 합 니 다.
• 자바 가상 컴퓨터 는 쓰레기 수 거 를 수행 하 는 데 사용 되 는 GC 스 레 드 가 있 습 니 다.
• GC 스 레 드 가 메모리 에서 대상 을 삭제 할 때 먼저 대상 의 finalize 함 수 를 호출 합 니 다. 이 함수 에서 사용자 정의 자원 방출 작업 을 수행 할 수 있 습 니 다.
• 자바 프로그램 자체 가 GC 를 강제로 시작 할 수 없습니다. System. gc () 와 Runtime. gc () 같은 함 수 를 사용 하 더 라 도 GC 스 레 드 에 GC 요청 만 전달 합 니 다.
• 자바 메모리 더미 (Java heap) 에 대상 을 만 들 수 없 을 때 자바 가상 기 회 는 OutOfmory Error 를 던 집 니 다.
• 대상 이 다른 대상 에 게 인용 되 지 않 았 다 는 것 은 GC Root 부터 옮 겨 다 니 며 옮 겨 다 닐 수 없 는 대상 을 말 합 니 다. GC Root 는 다음 과 같 습 니 다.
Class - 시스템 에 불 러 온 클래스 입 니 다. 이 클래스 는 마 운 트 해제 되 지 않 습 니 다. 클래스 의 정적 변 수 는 다른 자바 대상 을 참조 할 수 있 습 니 다.
Thread – 실행 중인 스 레 드 입 니 다.
스 택 에 있 는 부분 변수 – 스 택 에 있 는 함수 가 실행 되 어야 하기 때문에 그들 이 인용 한 대상 은 모두 유용 합 니 다.
JNI 매개 변수 와 부분 변수.
잠 금 (Monitor) - 스 레 드 동기 화 에 사용 합 니 다.
GC 에 서 는 보통 young generation 의 GC, 즉 minor GC 가 빠 릅 니 다. old generation 공간 이 부족 할 때 자바 가상 머 신 은 먼저 CMS GC 를 병행 수집 하려 고 합 니 다. 만약 에 이런 공간 이 빨리 회수 되 지 않 을 때 자바 가상 기 회 는 모든 스 레 드 의 GC 실행 을 중단 하고 메모리 공간 을 압축 하고 정리 하 며 주소 공간 (즉 참조) 을 재배 치 합 니 다. 이 때 는 Full GC 라 고 합 니 다.일반적으로 Full GC 의 실행 효율 은 minor GC 보다 훨씬 느 리 고 프로그램 최적화 목표 도 Full GC 의 실행 횟수 를 최소 화 하 는 것 이다.
JMap 도구 (자바 메모리 분석 패키지)
1. jmap – hep javaPID, 쌓 인 설정 정보 와 사용 정보
2. jmap – histo javaPID, 각 대상 이 사용 하 는 메모리 상황 보기
3. jmap – permstat javaPID, 지구 대 상세 사용 정보
4. jmap - dump: format = b, file = xxx. dmp javaPID, 파일 로 정 보 를 내 보 냅 니 다.
자바 프로 세 스 id 를 먼저 보고 jps 명령 을 사용 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.