JSR 107 캐싱 (JCache)에 대해 읽었습니다.JSR 107 - 캐싱 (JCache) vs CPU 캐싱
혼란 스러웠습니다 : 모든 CPU는 (OS의 도움없이) 캐싱 메모리를 관리합니다.
Java 캐싱 처리기가 필요한 이유는 무엇입니까? (CPU가 자신의 캐시를 관리하는 경우)
내가 여기에서 무엇을 놓칠까요?
감사
이 만들거나 여러 자바 VM을 공유해야 할 비용이 객체와 같은 자바 객체를 캐시에 관한JSR 107 캐싱 (JCache)에 대해 읽었습니다.JSR 107 - 캐싱 (JCache) vs CPU 캐싱
혼란 스러웠습니다 : 모든 CPU는 (OS의 도움없이) 캐싱 메모리를 관리합니다.
Java 캐싱 처리기가 필요한 이유는 무엇입니까? (CPU가 자신의 캐시를 관리하는 경우)
내가 여기에서 무엇을 놓칠까요?
감사
이 만들거나 여러 자바 VM을 공유해야 할 비용이 객체와 같은 자바 객체를 캐시에 관한CPU 캐싱과 메모리 캐싱간에 차이가 있습니다. 이 JCache는 메모리에있는 항목을 캐시하므로 디스크와 같은 값 비싼 리소스 나 네트워크를 통해 가져올 필요가 없습니다.
그래서 CPU에는 메모리가 저장되지 않도록 캐시가 내장되어 있습니다. CPU는 보통 3 레벨의 캐시를 가지고 있으며 약 8MB를 저장합니다. CPU 캐싱은 걱정할 필요가 없습니다. 뭔가가 CPU 캐시에 없다면 메모리에서 꺼내야합니다.
메모리에 캐시하는 것은 앞에서 언급 한 것처럼 디스크 나 더 느린 리소스로 이동하지 않는 것입니다. 이 메커니즘 프로그램은 제어 권한을가집니다. 그래서 당신이 계속적으로 DB에 객체를 요구하지 않으려면 메모리를 저장하고 같은 객체를 계속 반환 할 수 있습니다. 이렇게하면 꽤 많은 성능을 절약 할 수 있습니다. Thomas가 언급 한대로 JCache는 JVM 전반에 걸쳐 캐싱을 제공 할 수있는 기능을 추가합니다. 내가 이해하는 바로는 이것은 다른 Java 프로그램이 동일한 캐시를 공유 할 수 있음을 의미합니다.
. https://jcp.org/en/jsr/detail?id=107
캐시는 일반적으로 사용간에 데이터를 저장하는 데 일반적으로 사용됩니다. 너무 많은 시간이 걸리거나 사용 사이에 버리기 만하면 다시 만들 수 없으므로 캐시를 사용하는 것이 일반적입니다.
CPU 캐시는 메모리에서 읽는 데 더 많은 시간이 걸리기 때문에 데이터에 액세스해야하는 경우를 대비하여 데이터와 지침을 유지합니다.
JSR 107 캐시는 완전히 다른 수준에서 작동합니다.
감사합니다. 풀을 사용하고 있고 런타임에 시작시 모든 객체를 생성하는 경우 JCache도 사용해야합니까? (이 시나리오에서 JCache를 사용하는 것이 효율적입니까?) – user3668129
JCache에 익숙하지 않습니다. 풀을 사용하는 것은 캐싱의 일종이기도합니다. 간단한 수영장이 당신을 위해 일하는 경우에, 그것을 위해 가십시오. 정말 최고의 디자인이라면 응용 프로그램에 대한 더 많은 정보 없이는 말하기가 불가능합니다. –
풀에 개체를 저장하고 있지만 항상 데이터가 캐시에 저장되고 RAM에 저장되지는 않습니다. – user3668129
더 많은 정보를 제공해 주실 수 있습니까? CPU 캐시는 똑같은 일을 할 것입니다 : 캐시상의 RAM 메모리 (값 비싼 리소스)가 없기 때문에 무엇이 다른가요? – user3668129
CPU 캐시는 8MB로 제한되어 있으며 사용자가 제어 할 수 없습니다. 당신은 충분한 메모리, 기가 바이트의 것들을 가지고 있고 당신은 그것을 통제하고 있습니다. – uriDium
도움 주셔서 감사합니다 :) – user3668129