Java에서 eclipse.ini 구성 시 메모리 문제 분석 예
이 글은 eclipse.ini 메모리 설정 문제에 대한 자세한 분석 및 소개입니다. 필요한 친구들이 참고할 수 있습니다
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
여기에 몇 가지 질문이 있습니다.
1. 각 매개변수는 무엇을 의미합니까?
2. -Xmx 및 -XX:MaxPermSize를 모두 512M으로 설정한 후 일부 시스템에서는 Eclipse가 시작될 수 있지만 일부 시스템에서는 시작할 수 없는 이유는 무엇입니까?
3. eclipse.ini 파일에 위의 매개변수를 쓸 때 Eclipse가 해당 설정을 수행하지 않는 이유는 무엇입니까?
아래에서 하나씩 답변해 보겠습니다
1. 각 매개변수의 의미는 무엇인가요?
매개변수의 -vmargs는 JVM 매개변수 설정을 의미하므로 다음은 실제로 JVM 매개변수입니다. 먼저 JVM 메모리 관리 메커니즘을 이해한 후 각 매개변수의 의미를 설명합니다.
힙 및 비힙 메모리
공식 설명에 따르면 "Java Virtual Machine에는 힙이 있습니다. 힙은 런타임 데이터 영역이며 여기에서 모든 클래스 인스턴스와 배열의 메모리가 할당됩니다. . 힙은 JVM(Java Virtual Machine)이 시작될 때 생성됩니다. "JVM에서 힙 외부의 메모리를 비힙 메모리라고 합니다." JVM은 주로 힙과 비힙이라는 두 가지 유형의 메모리를 관리한다는 것을 알 수 있습니다. 간단히 말해서 힙은 Java 코드에 액세스할 수 있는 메모리이며 개발자를 위해 예약되어 있습니다. 비힙은 자체 사용을 위해 JVM용으로 예약된 메모리이므로 메서드 영역 및 JVM 내부 처리 또는 최적화(예: JIT 컴파일된 코드 캐시), 모든 클래스 구조(예: 런타임 상수 풀, 필드 및 메서드 데이터), 메서드 및 생성자에 대한 코드는 모두 오프힙 메모리에 있습니다.
힙 메모리 할당
JVM이 할당하는 초기 메모리는 -Xms로 지정되며, 기본값은 물리적 메모리의 1/64입니다. JVM이 할당하는 최대 메모리는 -Xmx로 지정되며, 기본값은 실제 메모리의 1/4입니다. 기본적으로 사용 가능한 힙 메모리가 40% 미만인 경우 JVM은 최대 제한인 -Xmx까지 힙을 늘립니다. 사용 가능한 힙 메모리가 70%를 초과하는 경우 JVM은 최소 한도인 -Xmx까지 힙을 줄입니다. -Xms. 따라서 서버는 일반적으로 각 GC 후에 힙 크기를 조정하지 않도록 -Xms 및 -Xmx를 동일하게 설정합니다.
비힙 메모리 할당
JVM은 -XX:PermSize를 사용하여 비힙 메모리의 초기 값을 설정합니다. 기본값은 물리적 메모리의 1/64입니다. XX:MaxPermSize는 최대 비힙 메모리 크기를 설정합니다. , 기본값은 물리적 메모리의 1/64/4입니다.
JVM 메모리 제한(최대값)
일단 JVM 메모리는 실제 최대 물리적 메모리로 제한됩니다(말도 안되는 소리! ㅎㅎ). 물리적 메모리가 무한하다고 가정하면 JVM 메모리의 최대값은 많습니다. 운영 체제와 관련이 있습니다. 간단히 말하면, 32비트 프로세서의 제어 가능한 메모리 공간은 4GB이지만 특정 운영 체제에서는 일반적으로 2GB~3GB로 제한됩니다(일반적으로 Windows 시스템에서는 1.5G~2G, 1.5G). Linux 시스템에서는 G-2G). 2G-3G)이며 64비트 이상의 프로세서에는 제한이 없습니다.
2. -Xmx 및 -XX:MaxPermSize를 모두 512M으로 설정한 후 일부 시스템에서는 Eclipse를 시작할 수 있지만 일부 시스템에서는 시작할 수 없는 이유는 무엇입니까?
위의 JVM 메모리 관리 소개를 통해 JVM 메모리에는 힙 메모리와 비힙 메모리의 두 가지 유형이 있음을 배웠습니다. 또한 JVM의 최대 메모리는 먼저 실제 물리적 메모리와 운영 체제에 따라 다릅니다. 따라서 VM 매개변수를 설정하면 주로 다음과 같은 이유로 프로그램이 시작되지 않습니다:
1) 매개변수의 -Xms 값이 -Xmx보다 크거나 - 값 XX:PermSize가 -XX보다 큽니다:MaxPermSize;
2) -Xmx와 -XX:MaxPermSize 값의 합이 현재 운영 체제의 최대 메모리 제한과 같은 JVM 메모리의 최대 제한을 초과합니다. 실제 물리적 메모리 등 실제 물리적 메모리에 대해 말하자면, 여기서 주목해야 할 점은 메모리가 1024MB라면 하드웨어가 그 일부를 점유하고 있기 때문에 실제 시스템에서 사용되는 1024MB가 아닐 수도 있다는 것입니다.
3. 위의 매개변수를 eclipse.ini 파일에 쓸 때 Eclipse가 해당 설정을 수행하지 않는 이유는 무엇입니까?
그렇다면 바로가기나 명령줄에서는 동일한 매개변수가 유효하지만 eclipse.ini 파일에서는 유효하지 않은 이유는 무엇입니까? 이는 eclipse.ini 파일의 설정 규칙을 따르지 않았기 때문입니다.
매개변수는 "항목 값" 형식입니다. 중간에 공백이 있는 경우 새 줄에 작성해야 합니다. 값에 공백이 있으면 큰따옴표로 묶어야 합니다. 예를 들어 -vm C:Javajre1.6.0binjavaw.exe 매개변수를 사용하여 가상 머신을 설정합니다. eclipse.ini 파일에서는
-vm
C와 같이 작성해야 합니다. :Javajre1.6.0binjavaw.exe
위에서 언급했듯이 eclipse.ini의 최종 매개변수는 다음과 같이 작성할 수 있습니다.
-vmargs
-Xms128M
-Xmx512M
-XX :PermSize=64M
-XX :MaxPermSize=128M
실제 실행 결과는 Eclipse의 "도움말"-"Eclipse SDK 정보" 창의 "구성 세부 정보" 버튼을 통해 확인할 수 있습니다.
Eclipse 압축 패키지와 함께 제공되는 eclipse.ini 파일의 내용은 다음과 같습니다.
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
-vmargs
-Xms40m
-Xmx256m
그 중 –launcher.XXMaxPermSize(앞에 두 개의 연결선이 있다는 점 참고)와 -XX:MaxPermSize 매개변수는 기본적으로 동일한 의미를 갖습니다. 유일한 차이점은 전자는 eclipse.exe가 시작될 때 설정되는 매개 변수이고 후자는 eclipse에서 사용하는 JVM의 매개 변수라는 것입니다. 실제로 둘 중 하나만 설정하면 –launcher.XXMaxPermSize와 다음 줄에 #을 주석 처리할 수 있습니다. 3. 기타 시작 매개변수. 듀얼 코어 CPU가 있는 경우
-XX:+UseParallelGC
매개변수를 사용해 GC 실행 속도를 높일 수 있습니다. (JDK 5에서 GC에 새로 추가된 매개변수입니다.)
위 내용은 Java에서 eclipse.ini 구성 시 메모리 문제 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Java의 Weka 가이드. 여기에서는 소개, weka java 사용 방법, 플랫폼 유형 및 장점을 예제와 함께 설명합니다.

Java의 Smith Number 가이드. 여기서는 정의, Java에서 스미스 번호를 확인하는 방법에 대해 논의합니다. 코드 구현의 예.

이 기사에서는 가장 많이 묻는 Java Spring 면접 질문과 자세한 답변을 보관했습니다. 그래야 면접에 합격할 수 있습니다.

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

Java의 TimeStamp to Date 안내. 여기서는 소개와 예제와 함께 Java에서 타임스탬프를 날짜로 변환하는 방법에 대해서도 설명합니다.

캡슐은 3 차원 기하학적 그림이며, 양쪽 끝에 실린더와 반구로 구성됩니다. 캡슐의 부피는 실린더의 부피와 양쪽 끝에 반구의 부피를 첨가하여 계산할 수 있습니다. 이 튜토리얼은 다른 방법을 사용하여 Java에서 주어진 캡슐의 부피를 계산하는 방법에 대해 논의합니다. 캡슐 볼륨 공식 캡슐 볼륨에 대한 공식은 다음과 같습니다. 캡슐 부피 = 원통형 볼륨 2 반구 볼륨 안에, R : 반구의 반경. H : 실린더의 높이 (반구 제외). 예 1 입력하다 반경 = 5 단위 높이 = 10 단위 산출 볼륨 = 1570.8 입방 단위 설명하다 공식을 사용하여 볼륨 계산 : 부피 = π × r2 × h (4

Java는 초보자와 숙련된 개발자 모두가 배울 수 있는 인기 있는 프로그래밍 언어입니다. 이 튜토리얼은 기본 개념부터 시작하여 고급 주제를 통해 진행됩니다. Java Development Kit를 설치한 후 간단한 "Hello, World!" 프로그램을 작성하여 프로그래밍을 연습할 수 있습니다. 코드를 이해한 후 명령 프롬프트를 사용하여 프로그램을 컴파일하고 실행하면 "Hello, World!"가 콘솔에 출력됩니다. Java를 배우면 프로그래밍 여정이 시작되고, 숙달이 깊어짐에 따라 더 복잡한 애플리케이션을 만들 수 있습니다.
