32 비트 프로세스는 64 비트 시스템에서 실행될 때 더 많은 메모리가 필요합니까?

StackOverflow https://stackoverflow.com/questions/1071029

문제

오히려 추모 배고픈 Java 응용 프로그램이 있습니다. Windows XP Professional과 함께 32 비트 시스템에서 응용 프로그램은 제가 주면 제대로 작동합니다. -Xmx1280m. 아래의 모든 것은 끝납니다 java.lang.OutOfMemoryError: Java heap space 예외.

64 비트 Windows XP Professional에서 동일한 응용 프로그램을 실행하면 필요합니다. -Xms1400m 외부 모성 조건을 방지합니다.

내 이해를 위해 C 프로그램이 있고 32 비트에 컴파일하고 64 비트에 64 비트 버전이 더 넓기 때문에 더 많은 메모리가 필요합니다. 내 Java 예에서는 가상 머신 (Sun)이 동일하고 바이트 코드는 동일합니다.

64 비트 머신에 더 많은 메모리가 필요한 이유는 무엇입니까?

도움이 되었습니까?

해결책

아마 가상 기기 구현은 더 많은 메모리 (더 넓은 유형, 다른 GC)를 소비하는 방식으로 32/64 비트 아키텍처 사이에서 다릅니다.

바이트 코드는 작업을 기본 시스템으로 전달할 때 관련이 없습니다. 자바와 메모리 효율이 내가 어쨌든합시다는 두 가지 용어인지 확실하지 않습니다 : P

다른 팁

바이트 코드가 동일하지만 JVM은이를 기계 코드로 변환하므로 C와 동일한 이유가 더 큰 메모리 풋 프린트가 필요합니다.

C 프로그램에 이미 나열된 것과 같은 이유입니다. 64 비트 시스템은 큰 메모리 주소를 사용하여 "누출"이 될 수 있습니다 (나는 그것이 내가 설명하는 데 사용 된 용어라고 생각합니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top