JVM Client 와 Server 쪽 은 어떤 차이 가 있 습 니까?

자바-version 명령 은 모두 가 사용 한 적 이 있 습 니 다.대부분 jdk 버 전 을 보 거나 환경 변수의 설정 을 검사 하 는 것 입 니 다.그러나 마지막 줄 의 정보 도 매우 중요 합 니 다.다음 그림 과 같 습 니 다.

서버 VM 은 우리 의 가상 컴퓨터 유형 을 나타 내 고 mixed mode 는 가상 컴퓨터 가 혼합 모드 로 작 동 하 는 것 을 나타 낸다.
가상 컴퓨터
먼저 다음 글 의 내용 은 모두 핫 스 팟 가상 머 신 에 기반 한 것 이다.
우리 가 잘 아 는 자바 가상 머 신 은 규범 적 인 기준 으로 여러 가지 실현 이 있다.예 를 들 어 HotSpot 가상 머 신 은 JVM 의 실현 이자 현재 사용 범위 가 가장 넓 은 자바 가상 머 신 이다.사실 핫 스 팟 은 최초 로 썬 이 개발 한 것 도 아니 고,그 가 초기 에 인수 한 한 회사 가 개발 한 것 인 데,나중에 썬 이 JDK 를 오픈 한 후 오픈 JK 가 탄생 했 기 때문에 핫 스 팟 은 이 두 개의 JDK 공용 가상 머 신 이 되 었 다.
HotSpot 가상 기기 뿐만 아니 라 Oracle 의 원래 Jrockit VM 도 자바 가상 기기 의 실현(나중에 HotSpot 과 Jrockit 을 통합)이 고 IBM 도 이에 대응 하 는 VM 이 실현 된다.
왜 HotSpot 가상 컴퓨터 라 고 합 니까?
이름 처럼 핫 이 슈 코드 탐지 기술 이 특징 이다.이 기술 은 실행 계수 기 를 통 해 가장 컴 파일 가치 가 있 는 코드 를 찾 아 낸 다음 에 JIT 를 통 해 즉시 기계 코드 로 컴 파일 하고 캐 시 하여 실행 효율 을 높 일 수 있다.
한편,JIT 컴 파일 은 하나의 개념 일 뿐 HotSpot 에 C1,C2 라 는 두 가지 컴 파일 러 가 내장 되 어 있다.
C1:컴 파일 시간 이 짧 고 최적화 전략 이 간단 합 니 다 C2:컴 파일 시간 이 길 고 최적화 전략 이 복잡 합 니 다.
C1,C2 는 모두 JIT 컴 파일 기술 에 속 하고 JIT 의 서로 다른 실현 이다.
2.가상 컴퓨터 유형 client server 의 차이
HotSpot 가상 머 신 은 client 단 과 server 단 으로 나 뉘 는데 정확히 말 하면 두 가지 유형 으로 나 눌 수 있 습 니 다.client,server VM 은 서로 다른 업무 장면 을 적용 하 는 가상 머 신 유형 이기 때 문 입 니 다.
클 라 이언 트 VM 은 C1 컴 파일 러 를 사용 합 니 다
  • server VM 은 C2 컴 파일 러 를 사용 합 니 다
  • 첫 번 째 그림 에서 동 그 라 미 를 친 Server VM 은 C2 컴 파 일 러 를 사용한다.
    그래서 clientserver 의 가장 큰 차 이 는 바로 C1 과 C2 의 차이 이 고 주로 컴 파일 전략 에 나타난다.
    클 라 이언 트 시작 이 빠 르 고 메모리 사용량 이 적 으 며 컴 파일 이 빠 르 며 데스크 톱 응용 프로그램 에 대한 최적화(예 를 들 어 GUI)는 클 라 이언 트 환경 에서 시작 시간 을 줄 이기 위해 최적화 되 었 습 니 다4.567917.서버 의 작 동 이 느 리 지만 일단 실행 되면 성능 이 크게 향상 된다.컴 파일 이 더욱 완전 하고 효율 이 높 기 때문에 서버 에 대한 응용 최적화여러분 은 구체 적 인 업무 장면 에 따라 선택 할 수 있 지만 현재 의 시스템 은 대부분이 B/S 구조 이 고 앞 뒤 가 분리 되 어 있 기 때문에 저희 가 사용 하 는 가상 컴퓨터 는 대부분이 server 유형 입 니 다.
    인터넷 에 c++자바 의 성능 대비 가 있 습 니 다.다음 과 같 습 니 다.

    가장 뚜렷 한 차 이 는 JVM client 단 과 server 단 이 methodcall 방법 호출 에 대한 성능 대비(빨간색 은 server VM,노란색 은 client VM,높 을 수록 좋 음)입 니 다.
    또한 client/server VM 은 컴 파일 정책 과 성능 의 차 이 를 제외 하고 메모리 배분 과 GC 에서 도 다 릅 니 다.
    클 라 이언 트 기본-Xms 는 1M,-Xmx 는 64M,신 생 대 는 직렬 gc,구 생 대 는 직렬 gc
  • server 기본-Xms 는 128 M,-Xmx 는 1024 M,신세대 선택 은 병행 회수 gc,구 세대 선택 은 병행 gc
  • 핫 스 팟 가상 기기 의 종 류 를 수정 할 필요 가 있 으 면%JAVA 를 통 해HOME%jrelibamd 64 폴 더 의 jvm.cfg 수정(jdk 버 전이 다른 디 렉 터 리 는 amd 64 라 는 이름 이 아 닐 수 있 음),jvm.cfg 파일 의 내용 은 다음 과 같 습 니 다.
    -server KNOWN-client IGNORE
    이 인자 가 정 해진 시간 을 가리 키 지 않 을 때 가상 머 신 이 호스트 가 서버 인지 확인 하기 시작 합 니 다.만약 그렇다면 ServerVM 으로 시작 합 니 다.그렇지 않 으 면 Client VM 으로 시작 합 니 다.검 측 근 거 는 최소 2 개의 CPU 와 최소 2GB 메모리 입 니 다.
    자바 명령 을 실행 할 때마다 뒤에-client 또는-server 의 인 자 를 추가 하 는 전환 방식 도 있 습 니 다.
    여기 서 주의해 야 할 것 은 어떤 방식 으로 전환 하 든 대응 하 는 jvm.dll 을 호출 하여 실행 되 기 때문에 로 컬 에 client 와 server 가 각각 대응 하 는 jvm.dll 파일 이 있어 야 합 니 다.그렇지 않 으 면 가상 컴퓨터 형식 을 전환 할 수 없습니다.
    가상 컴퓨터 작업 모드
    첫 번 째 그림 에서 마지막 으로 동 그 라 미 를 친 mixed mode 는 가상 컴퓨터 의 작업 모드 를 혼합 모드 로 표시 하고 명령 행 에 자바-X 를 입력 하면 다른 모드 를 볼 수 있 습 니 다.

    또 하나의-XComp 는 순 컴 파일 모드 를 나타 낸다.
    다음은 세 가지 모델 의 차 이 를 말씀 드 리 겠 습 니 다.
  • -Xmixed 혼합 모드:mixed mode 는 HotSpot 가상 컴퓨터 의 기본 작업 모드 입 니 다.상기 글 에서 가상 컴퓨터 가 바이트 코드 를 실행 하 는 두 가지 방식 을 말 한 적 이 있 습 니 다.해석 집행 과 컴 파일 집행,컴 파일 집행 은 JIT(C1/C2)이기 때문에 혼합 모드 는 실행+컴 파일 집행(clientVM 또는 server VM 유형 에 따라 C1 또는 C2 컴 파일 러 를 사용 합 니 다)을 설명 하 는 것 입 니 다.이렇게 하면 해석 집행 과 컴 파일 집행 의 장점 을 발휘 할 수 있다
  • -Xint 해석 모드:interpreted mode,JVM 에 게 모든 바이트 코드 를 해석 방식 으로 실행 하도록 강제 합 니 다
  • -Xcomp 컴 파일 모드:copiled mode,-Xint 와 반대로 JVM 은 처음 사용 할 때 모든 바이트 코드 를 로 컬 코드 로 컴 파일 합 니 다(실제 내 가 테스트 한 효 과 는 혼합 모드 보다 못 합 니 다)
  • 해석 모드 와 컴 파일 모드 의 차이 점
    같은 작업 모드 에서 도 전환 할 수 있 습 니 다.명령 행 에-Xint 또는-XComp 의 매개 변수 설정 을 추가 합 니 다.

    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기