내가 알기로는 Sun이 64 비트 버전의 Java를 제공하고 있습니다. 32 비트 버전보다 성능이 우수할까요?Java 64 비트가 32 비트 버전보다 더 잘 수행됩니까?
답변
작업 부하를 정의하고 "수행하는"것이 무엇을 의미하는지 정의하십시오.
이것은 장기간 성능 괴짜로서 내게 달려가는 일종의 성가심입니다. 특정 변경이 "더 잘 수행되는지 여부"가 작업 부하에 무엇보다 중요합니다. 즉, 프로그램에 수행 할 작업을 묻는 것입니다.
64 비트 계산 부하가 많은 작업에서는 Java가 자주 성능이 향상됩니다. Java 프로그램은 고전적으로 I/O 부하가 높고 네트워크 부하가 큽니다. 64 비트 대 32 비트는 중요하지 않지만 운영 체제는 일반적으로 문제가 없습니다.
예, 특히 코드가 64 비트 플랫폼을 대상으로 작성된 경우
64 비트 플랫폼 용 Java 코드를 정확히 대상으로하는 방법은 무엇입니까? – TofuBeer
32 비트 대신 64 비트 정수를 사용합니다. –
대부분의 CPU 아키텍처에서 32 비트는 64 비트보다 빠르며 그 밖의 모든 것은 동일합니다. 64 비트 포인터는 32 비트로 전송하는 데 2 배의 대역폭이 필요합니다. 그러나 x64 명령어 세트 아키텍처는 x86에 비해 약간의 정상 성을 더해 주므로 더 빨리 끝납니다. long 타입의 처리량은 대개 작습니다.
물론 자바의 구현에 따라 달라집니다. 컴파일러뿐만 아니라 구현의 차이점을 발견 할 수도 있습니다. 예를 들어, NIO는 64 비트 포인터를 가정합니다. 또한 Sun은 이전에 x64에 대해보다 빠른 서버 HotSpot 구현만을 출하했습니다. 즉, -d64
을 지정하면 클라이언트에서 서버 HotSpot IIRC로 전환됩니다.
몇 가지 개선 사항 : 64 비트에서의 복식 연산은 32 비트 부동 소수점 연산과 int 연산보다 64 비트 연산이 동등하게 빠릅니다.
그래서 많은 양의 코드를 실행하는 경우 실제 개선이 이루어질 수 있습니다.
거의 항상 64 비트가 느려집니다.
는 HotSpot FAQ에서 일을 인용하자면 : 응용 프로그램이 SPARC에서 32 비트 플랫폼에 비해 64 비트 플랫폼에서 실행 비교 성능 차이는 10 ~ 20 % 정도에입니다
VM으로 이동하면 이 저하됩니다. AMD64 및 EM64T 플랫폼의 경우이 차이는 에 따라 0-15 % 차이가 나며 응용 프로그램에 액세스하는 포인터는 입니다.
링크에 자세한 내용이 있습니다.
위의 문단 –
1.2GB가 넘는 경우 64 비트가 더 잘 수행됩니다. 일부 플랫폼에서는 최대 3GB까지 얻을 수 있지만, 예를 들어 4 - 384GB를 원하면 64 비트 만 선택할 수 있습니다.
저는 Azul이 384GB JVM을 지원한다고 생각합니다.
1.2GB 또는 무엇에 표시된 바와 같이 x86_64에서 거의 항상 빠릅니다. 기억? – johnny
@johnny 예, 32 비트 Windows 시스템에서 1.2GB의 메모리. –
내 경험은 다른 답변과 다릅니다.
Java 64 비트는 32 비트보다 빠릅니다. 적어도 내 테스트와 항상 같았 어!64 비트 -VM은 내부적으로 짧은 포인터를 사용하기 때문에 4GB 미만이 사용되면 포인터 인수가 유효하지 않습니다. 그러나 64 비트 CPU의 더 빠른 명령어 세트를 얻을 수 있습니다!
Windows 7 및 JDE1.8.0_144에서 테스트했지만 실제 이유는 내부 JVM 설정이 다릅니다. 64 비트 JVM을 사용하면 "서버"모드에서 시작하고 32 비트 VM은 "클라이언트"모드에서 시작됩니다.
- 1. 64 비트 연산은 32 비트 컴퓨터에서 어떻게 수행됩니까?
- 2. windows 7 64 비트가 잘못되었습니다. 32 비트 용 32 비트 라이브러리를로드 할 때의 경로 exe
- 3. 32 비트 64 비트 호환
- 4. 32 비트/64 비트 OS?
- 5. * .WAR (64 비트 x 32 비트) 생성
- 6. 포트란 : 32 비트/64 비트 성능 이식성
- 7. 32 비트 DLL을 사용하는 64 비트 Java 응용
- 8. 64 비트 컴퓨터에서 32 비트 DLL 사용
- 9. 64 비트 톰캣을 사용하면 32 비트 톰캣보다 성능이 향상됩니까?
- 10. 64 비트 Solaris에서 32 비트 포인터로 컴파일
- 11. Java 성능 64 비트
- 12. 어느 mysql 32/64 비트
- 13. 32 대 64 비트 GC
- 14. 32 비트 윈도우 아래의 64 비트 레지스터
- 15. 32 비트 및 64 비트 ASP.NET 배포
- 16. 64 비트 어셈블리의 32 비트 명령어들
- 17. 32 비트/64 비트 시스템에 관한 질문
- 18. Office의 32 비트 DLL 64 비트
- 19. 64 비트 Weblogic 서버의 32 비트 JDK
- 20. 32 비트 64 비트 참조 라이브러리
- 21. SharePoint 64 비트 또는 32 비트
- 22. 64 비트 Windows 2008의 32 비트 cluster.exe
- 23. 32 비트 Windows XP 64 비트 VM
- 24. 32 비트 dll에서 64 비트 dll로 변환
- 25. SHGetFolderPath() 32 비트 대 64 비트
- 26. 32 비트 라이브러리를 64 비트 프로그램에 연결
- 27. 64 비트 대 32 비트 Windows 결정
- 28. 64 비트 OS/32 비트 프로세스
- 29. 32 비트 및 64 비트 CPU/OS
- 30. 64 비트 파이썬은 32 비트 Windows
답변이 간단하지 않을 수 있습니다. 필자에게 64 비트는 64 비트 주소 공간이 도움이되고 방해가되지 않는로드에 더 적합합니다. 모든 포인터에 대해 2 배의 비용이 들며, 많은 양의 데이터가 필요할 때보다 중요합니다. 웹 서버 객체 캐시는 64 비트가 성공한 좋은 예입니다. – Cheeso
Sun은이 대답이 잘못되었다고 말합니다. – Darron
대런, 그걸 인용 했나요? Sun에서 10 년 동안 일한 이래로 대답은 기본적으로 "작업 부하와 어떤 측정 성능에 달려 있느냐에 달렸습니다."- 나는 이것을 어떻게 쓰는지 - 당신을 믿지 않습니다. –