JVM을 너무 많이 확인하지 않았지만 그렇게하지 않은 JVM을 고정 힙 크기로 실행 해야하는 이유를 누구나 설명 할 수 있습니까? 간단한 연속 힙으로 구현하는 것이 더 쉽다는 것을 알고 있지만 Sun JVM은 이제 10 년이 넘었으므로이를 개선 할 시간이 있었을 것으로 예상됩니다.
시작시 프로그램의 최대 메모리 크기를 정의 해야하는 것은 1960 년대와 같은 일이며 OS 가상 메모리 관리와의 상호 작용이 잘못되었습니다 (GC는 스왑 아웃 데이터 검색, Java 프로세스의 메모리 용량을 결정할 수 없음) 실제로 OS 측에서 사용하면 엄청난 양의 VM 공간이 낭비됩니다 (나는 당신이 멋진 48 비트 머신에 신경 쓰지 않는다는 것을 알고 있습니다 ...). 또한 JVM (EE 응용 프로그램 서버, OSGi) 내에 작은 운영 체제를 구축하려는 여러 가지 슬픈 시도는이 상황에서 적어도 부분적으로 책임을 져야한다고 생각합니다. 시스템에서 여러 Java 프로세스를 실행하면 자원이 낭비되기 때문에 피크에서 사용해야 할 메모리를 각각 제공하십시오.
놀랍게도, 구글은 내가 기대했던 것에 대한 분노의 폭풍을 일으키지 않았지만, 수백만의 사람들이 고정 된 힙 크기를 알아 내고 사실을 받아들이는 것에 묻 혔을 수도 있습니다.