2012-04-15 5 views
0

32 비트 Ubuntu 시스템에서 광산 공예 서버를 실행하는 경우 to64를 업그레이드하면 Java에 줄 수있는 최대 메모리는 얼마입니까? 나는 그것이 약 12 ​​기가의 램을 갖고 싶지만 32 비트에서 할 수는 없다.자바에 저장할 수있는 최대 메모리는 얼마입니까?

+0

힙이 32GB 미만인 경우 Java가 더 효율적으로 실행되지만 대부분의 프로세서에 대한 이론적 인 제한은 256TB (가상 메모리 한도)입니다. 작성한 가장 큰 JVM 메모리 크기는 8TB입니다. –

답변

2

64 비트 시스템이 해결할 수있는 램의 양에는 사실상 최대 값이 없다. 컴퓨터의 하드웨어에 의해서만 중지됩니다. 나는 자바가 최대량의 alloted RAM을 가지고 있다고 생각하지 않는다. 당신이 명령에서 올바른 스위치를 사용했다면 말이다. Java Tuning 백서에서

http://en.wikipedia.org/wiki/64-bit

+1

제한은 하드웨어와 관련이 없습니다. 그것은 당신의 OS가 지원하는 가상 메모리의 양과 직접적으로 관련이있다. (당신이 주장하는 것은 하드웨어와 관련이 있지만 내가 생각했던 방식이 아니다.) –

+1

이것은 하드웨어와 관련이 있습니다. 메모리는 "소프트웨어"가 아니며 "소프트웨어"는 "메모리"가 아닙니다. O/S는 프로세서 아키텍처와 물리적 하드웨어에 대한 제한 사항을 기반으로 어느 정도의 메모리를 주소 지정할 수 있지만, 조만간 모든 메모리 페이지는 물리적 메모리 나 페이징 공간의 형태로 백업되어야합니다. –

0

: 일부 운영 체제는이이 제한하지만 32 비트 프로세스 모델에 대한

, 프로세스의 최대 가상 주소 크기는 일반적으로 4기가바이트입니다 GB 또는 3GB. 실제 제한은 응용 프로그램에 따라 다르지만 최대 힙 크기는 일반적으로 2GB 제한의 경우 -Xmx3800m (1600m)입니다. 64 비트 프로세스 모델의 경우 최대 값은 본질적으로 무제한입니다.

사실 엄청난 힙 메모리 사용량 (12GB)은 비생산적입니다. 오랫동안 실행 한 후에 응용 프로그램이 가비지 수집을 수행하는 데 소비하는 시간이 너무 많은 메모리를 사용할 수있는 효과를 무효화합니다.

+2

그게 달려 있습니다. Java 코드를 작성하여 가비지 콜렉션이 거의 없으므로 삶을 비참하게 만들 수는 없습니다. –

+0

누군가 나쁜 날을 보내고 있습니까? Java는 RAM을 할당하지 않습니다. 실제 메모리 (RAM ...) 또는 가상 (페이징 공간 등)이 될 수있는 메모리를 할당합니다. –

+0

오스카 : 내 대답을 주변에서 실행하기로 결정했습니다. ? 미성숙 한가? –

1

"하드웨어"에는 페이징/스왑 공간이 포함되어 있으므로 실제로 12GB가 필요하고 RAM이 8GB 밖에되지 않는 경우 Java의 경우 스왑 공간 4GB가 있어야합니다. 추가 메모리를 성공적으로 할당하십시오.

+0

좋아,이 downvote는 어리 석다. 실제 제한은 사용 가능한 실제 메모리, 페이징 공간 및 사용자 프로세스의 모든 리소스 제한에 의해 결정됩니다. 그것은 "본질적으로 무제한"이 아닙니다. 머지 않아 허용 된 페이지가 할당되고 뒷받침되어야합니다. –

관련 문제