자바는 전반적으로 최적화를 수행하며, 스위치가 희소한지 여부와 얼마나 많은 경우가 있는지에 따라 스위치를 최적화 할 수 있으며 JIT가 코드를 최적화하기에 충분할만큼 코드가 덥다고해도 이해할 수 있습니다. 나는 더 이상 bitwise를 사용하는 것과 같이 "assist"를 제공 할 필요가 있는지 궁금해하고있다. 코드가 실제로 매우 뜨거웠다 고 가정하고 테스트 된 변수 나 비트 단위로 "더 좋은"숫자로 변수를 이동하는 것과 같은 것이다. "좋네요"0xFFXX보다는 0xXX입니다. 요구 사항을 구체적으로 기술 한 핫스팟 JIT 문서가 있습니까? "xxx의 일반적인 프로그래밍 지침을 따라야합니다."JIT를 디스패치 테이블로 전환하는 데 자바가 일반적으로 얼마나 많은 프로그래머가 "도움"을 필요로합니까?
5
A
답변
0
자바 자체가 virtual machine 이상으로 실행되기 때문에 여기서 뭔가를 놓치지 않는 한 쉽게 할 수있는 방법이 없다고 생각합니다.
Java에서는 일종의 블랙 박스가 생기고 더 최적화하기 위해 IMHO가 위험합니다. 핫스팟 JIT 백서를 들어
, see here
1
이에 쉽게 답이있을려고하고 있지 않다.
나는이 질문을 hotspot-dev에 가져다 - 어떻게 이런 일이 발생했는지 더 많은 정보를 제공 할 수있을 것이다.
이에 흥미로운 관점을 가지고있는 JVM-1 메일 링리스트에 교제 할 수있다 다른 사람 (등 찰리 임마, 레미 Forax, 존 로즈)
는
2
tableswitch
또는 lookupswitch
중 하나에 대한 결정은 이미 완료 javac
컴파일러. JIT가 lookupswitch
을 tableswitch
으로 변환하려고 시도한 것을 들어 본 적이 없습니다.
첫 번째 단계는 바이트 코드 switch
을 확인하는 것입니다.
+0
그렇다면 javac이 테이블 스위치로 만드는 것을 보장하는 안전한 코딩 가정 (특정 내부 컴파일러 규칙)은 무엇입니까? 오류를 "추측"하고 시행 착오를 수행하는 대신 "더티"할 바이트 코드를 사용하십시오. –
관련 문제
- 1. django.forms는 얼마나 많은 도움을 줄 수 있습니까?
- 2. 전문 프로그래머가 일반적으로 사용하는 DPI 설정은 무엇입니까?
- 3. 얼마나 많은 색상 조합은
- 4. 얼마나 많은 서비스를 가져야합니까?
- 5. 얼마나 많은 테스트가 충분합니까?
- 6. JIT를 EXE로 변환 하시겠습니까?
- 7. 얼마나 많은 EJB가 얼마나 많이 있습니까?
- 8. 얼마나 많은 소켓 연결이 가능합니까?
- 9. Tomcat을 종료하는 데 얼마나 걸려야합니까?
- 10. PHP + MySQL로 DB를 전환하는 속도는 얼마나 빠릅니까?
- 11. 실제로 얼마나 많은 인덱스가 사용됩니까?
- 12. MySQL에서 얼마나 많은 계산을해야합니까?
- 13. 얼마나 많은 JSON이 JSON입니까?
- 14. 얼마나 많은 법선입니까?
- 15. django : 얼마나 많은 쿼리
- 16. 얼마나 많은 콩이 충분합니까?
- 17. 얼마나 많은 기능이
- 18. 얼마나 많은 threadsd 사용해야합니까
- 19. rrd에 얼마나 많은 rra?
- 20. 레이크 테스트를 실행하는 데 너무 많은 시간이 얼마나 걸립니까?
- 21. ASMX를 WCF 웹 서비스로 변환하는 데 얼마나 많은 노력이 필요합니까?
- 22. ASP.NET MVC에서 웹 스토어를 구축하는 데 얼마나 많은 노력이 필요합니까?
- 23. 얼마나 많은 비트가 사용 되었습니까?
- 24. 얼마나 많은 (일반?) 클래스 WordPress에 있습니까?
- 25. trie를 만드는 데 얼마나 걸리나요
- 26. iPhone에서 수수께끼를 푸는 데 도움을 주시겠습니까?
- 27. 얼마나 많은 setIntervals가 우수 사례에서 너무 많습니까?
- 28. 디스패치 장식
- 29. 얼마나 많은 병합 정렬이 있습니까?
- 30. 얼마나 많은 PHP가 포함하고 있습니까?
나는 이것이 답이 될까봐 걱정했다. 핫스팟 또는 유사한 JIT에 대한 조건이 디스패치 테이블로의 집중적 인 전환을 최적화하기 위해 궁금해하고 있었기 때문에 최적화를 위해 뜨거웠고 선출 된 것으로 밝혀졌습니다. –
내가 무슨 뜻인지 알 겠어. 흠, 내가 할 수있는 한이 질문에 Bounty를 넣을 것이다. – Coffee