반응형
중복 된 Java 런타임 옵션 : 선호하는 순서는 무엇입니까?
다음 명령 줄 고려
java -Xms128m -Xms256m myapp.jar
JVM 최소 메모리 ( Xms
옵션) : 128m 또는 256m에 적용되는 설정은 무엇입니까?
JVM에 따라, 아마도 버전에 따라 다를 수 있습니다. 아마도 당시 책상에 얼마나 많은 종이 클립이 있는지도 모릅니다. 작동하지 않을 수도 있습니다. 그러지 마.
어떤 이유로 든 제어 할 수없는 경우 항아리를 실행하는 것과 동일한 방식으로 컴파일하고 실행하십시오. 그러나 경고를 받으십시오. 옵션의 순서에 의존하는 것은 정말 나쁜 생각입니다.
public class TotalMemory
{
public static void main(String[] args)
{
System.out.println("Total Memory: "+Runtime.getRuntime().totalMemory());
System.out.println("Free Memory: "+Runtime.getRuntime().freeMemory());
}
}
항상 그렇듯이 로컬 JVM의 특정 구현을 확인하십시오. 여기에는 코딩하지 않고도 명령 줄에서 빠르게 확인할 수있는 방법이 있습니다.
> java -version; java -Xmx1G -XX:+PrintFlagsFinal -Xmx2G 2>/dev/null | grep MaxHeapSize
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
uintx MaxHeapSize := 2147483648 {product}
따라서이 경우에 두 번째 인수 (2G)가 우선 순위 (최소 1.8에서)이며 대부분의 다른 최신 버전에 대한 경험이기도합니다.
IBM JVM은 인수의 가장 오른쪽 인스턴스를 승자로 취급합니다. HotSpot 등과 통화 할 수 없습니다.
사람들이 끝에 만 추가 할 수있는 배치 파일의 명령 줄이 깊게 중첩되어있는 경우가 많기 때문에이를 수행합니다.
FTR, OpenJDK 1.7은 적어도 -Xms에 대해 가장 오른쪽 값을 취하는 것 같습니다.
두 번째 인 것 같아요. 인수는 일반적으로 다음 순서로 처리됩니다.
for( int i=0; i<argc; i++ ) {
process_argument(argv[i]);
}
그러나 Java 인수 파서를 작성하는 경우 충돌하는 인수에 대해 불평 할 것입니다.
반응형
'Programing' 카테고리의 다른 글
bash 스크립트를 실행할 때 줄 번호를 표시하는 방법 (0) | 2020.11.04 |
---|---|
Swift의 UIViewController에서 기본 super.init ()를 호출 할 수없는 이유는 무엇입니까? (0) | 2020.11.04 |
웹 사이트 용 Apple Touch 아이콘 (0) | 2020.11.04 |
jQuery로 JSON 트리를 검색하는 방법 (0) | 2020.11.04 |
자바 : org.w3c.dom.Document의 모든 요소를 반복하는 가장 효율적인 방법? (0) | 2020.11.04 |