C 프로그래밍에서는 CPU 레지스터에 변수를 유지하기 위해 register
지정자를 사용합니다. 마찬가지로 자바 CPU 캐시에 객체를 유지하는 자바에서 지시자가cpu 레지스터에 java 보관 객체가 있습니다.
답변
호
자바 (확실히 C에 비해) 고급 언어이므로 이러한 종류 참견 불가능 낮은 수준의 기능성
C와는 다른 점은 Java에서 VM을 실행해야한다는 것입니다.이 VM은 수시로 다양한 레지스터가 필요할 것입니다. 그래서, 얼마나 많은 레지스터가 있는지 알 수 없으므로 하나의 레지스터를 사용할 수 있습니다. 물론 각 VM은 다르게 (내부적으로) 동작 할 수 있으므로 실제 방법이 있습니다.
아니요, Java 컴파일러 (해야 ...)가 처리합니다. 현대 컴파일러는 인간의 힌트가 더 이상 필요하지 않습니다 (대부분의 경우 ...).
개체가 Java (또는 표준 C AFAIK)에서 캐시에 있는지 여부는 제어 할 수 없습니다. 일반적으로 레지스터에 값을 배치하기 위해 C에서 register
힌트를 제공 할 필요가 없으며 레지스터에 값이 있음을 보장하지 않습니다. 있는 변수
자바에서 JIT는 레지스터에 결정하고 CPU는 객체를 결정 (또는 그 중 일부는) 어느 캐시에 당신이하려고하는 문제가 어떤 종류의
을 (당신이 3 개 이상 가질 수)입니다 풀다?
BTW : JIT를 현명하게 만들려고하면 코드가 더 느려지는 경향이 있습니다.
일부 특정 객체가 의도적으로 CPU 캐시에 보관 될 때 자바 프로그램의 성능을 비교하고 싶습니다. 이것은 cpu miss를 줄입니다. – Vivek
관심있는 캐시 (L1, L2, L3)에 비해 훨씬 적은 양의 데이터를 사용하여 객체를 반복적으로 액세스하여 캐시에 보관할 수 있습니다. 즉 처음 액세스 할 때 걸린 시간을 무시합니다. 참고 : 레지스터는 캐시와 매우 다릅니다. 레지스터에 객체를 배치 할 수는 없지만 반복적으로 액세스하여 레지스터에 값을 배치 할 수 있습니다. –
Java 사양은 프로그래머에게 이러한 기능을 제공하지 않습니다. 그러나 여전히 JVM은 최적화 목적으로 레지스터 또는 다른 내부 메모리 위치를 사용할 수 있습니다.
그러나 Java는 레지스터에 값을 캐시하거나 저장할 수 없도록 기능을 제공합니다. 필드/데이터 멤버 휘발성을으로 선언하여이 작업을 수행합니다.
- 1. CPU 레지스터에 로컬 변수 할당
- 2. CPU 레지스터에 쓰기가 실제로 어떻게 작동합니까?
- 3. iPhone/Obj-C - 보관 객체가 지연을 초래합니다.
- 4. NSCoding을 사용한 iOS 보관 객체가 실패했습니다.
- 5. Windows에서 Intel CPU I/O 레지스터에 액세스하는 쉬운 방법
- 6. lucene 색인 객체가 메모리에 있습니다.
- 7. Java 애플릿 CPU 제한?
- 8. 목록에 중복 객체가 있습니다.
- 9. Scilab에 객체가 그려져 있습니다.
- 10. oracle.jdbc.driver.T4CConnection에 잠긴 객체가 있습니다.
- 11. Java 객체가 파괴되었는지 확인
- 12. 왜 컴파일러는 변수를 레지스터에 저장합니까?
- 13. Java : 하위 클래스의 생성자에 부모 클래스의 객체가 있습니다.
- 14. Xcode에서 arm64 CPU 용 보관 파일을 비활성화하려면 어떻게해야합니까?
- 15. Java 프로세스 CPU 사용량이 증가합니다.
- 16. Java 높은 CPU 사용량 데비안
- 17. Java CPU 리소스 돼지, 100 %
- 18. 세션과 비슷한 객체가 있습니다. 양식은
- 19. Json 객체가 평평 해지고 있습니다.
- 20. 데이터베이스에 'AspNetRoles'라는 객체가 이미 있습니다.
- 21. webdriverjs : 예상 문자열에 객체가 있습니다.
- 22. 토네이도가있는 지속적인 런타임 객체가 있습니다.
- 23. 이미 데이터베이스에 객체가 있습니다. 예외
- 24. 데이터베이스에 'Applications'라는 객체가 이미 있습니다.
- 25. test.success에 PhantomCSS undefined 객체가 있습니다.
- 26. Java Graphics 객체가 경계를 벗어났습니다
- 27. Java 객체가 ArrayList에 추가되지 않았습니다.
- 28. 보관/보관 취소 UIWebView?
- 29. Java 객체가 기본값으로 돌아 가기
- 30. WebClient를 사용하여 보관 용 보관함에 오류가 있습니다.
자바 키워드를 살펴 보았습니까? –
C에서조차도, 'register' 수정자는 컴파일러에 대한 "힌트"일뿐입니다. –
@DaveNewton 내가'goto'와'const';를 볼 자바 키워드를 볼 때) –