Linux, AIX 및 HP-Ux (PA-RISC)에서 실행되는 Java 응용 프로그램을 제공합니다. 우리는 다른 두 환경에서 정상적으로 작동하는 응용 프로그램에서 HP-UX에서 허용 가능한 수준의 성능을 얻으려고 애 쓰고 있습니다. 이는 실행 시간과 메모리 소비 모두에 해당됩니다.Java 메모리 소비, "top"및 HP-Ux
"왜"에 대한 결정적인 기사를 아직 찾지는 못했지만, "최고"를 사용하여 메모리 소비를 측정하는 것은 공유 코드가 오해의 소지가있는 결과를 가져 오는 것과 같은 이유로 조잡한 접근이라고 믿습니다. 그러나 HP-Ux에서의 메모리 소비가 문제가되는 고객 사이트에서 계속해야 할 모든 것입니다. 이번에는 Java 1.4에서 Java 1.5 (HP-Ux 11.23 PA-RISC)로 전환했을 때만 문제가되었습니다. "하나의 이슈"란 16GB의 물리적 메모리를 모두 소모했기 때문에 기계가 새로운 프로세스를 만드는 것을 중단했음을 의미합니다.
"before"와 "after"총 "여유 메모리"를 측정함으로써 Java 어플리케이션에서 얼마나 많은 양을 소비했는지 측정하려고합니다. ArrayList에 10,000 개의 무작위 64 비트 문자열을 저장하는 빠른 응용 프로그램을 작성하여 Java 1.4 및 Java 1.5에서 Linux 및 HP-Ux의 사용량을 측정하는 방법을 시도했습니다.
결과 : 자바는 1.4 ~ 60메가바이트
HP 자바 1.5 ~ 1백50메가바이트이
리눅스 자바 1.4 ~ 24메가바이트
리눅스 자바 1.5 ~ 16메가바이트
사람이 설명 할 수
HP 왜 이러한 결과가 발생할 수 있습니까? 이것은 "최고"가 여유 메모리를 측정하는 방식의 특이한 점입니까? HP의 Java 1.5는 Java 1.4보다 2.5 배 많은 메모리를 실제로 사용합니까?
감사합니다.
JConsole은 이상한 것을 보여줍니다. 물론 1.4 버전이 아니라 자바 1.5에서만이 방법을 시도 할 수 있습니다. 그러나 두 플랫폼 모두에서 힙 크기가 비슷합니다. "커밋 된"메모리는 동일한 최대 힙 크기 (512M)에 대해서도 대략 동일한 크기입니다. – Gareth
Sun Java 포럼을 사용해 보셨습니까? 질문이 다른 포럼을 넘어 섰을 때 나는 소스 --- Sun Java 포럼으로 간다 - http://forums.sun.com/forum.jspa?forumID=31 – anjanb