Dev/Java

[java] on-heap 과 off-heap

창문닦이 2019. 9. 20. 18:12

메모리 비교

on-heap store : Java heap에 존재할 객체를 참조한다 (또한 GC를 따릅니다).

 

off-heap store :  EHCache에 의해 관리되지만 힙 외부에 저장되는 (직렬화 된) 개체를 참조한다 (또한 GC에 종속되지 않는다). 메모리에서 계속 관리되므로 힙 메모리보다 약간 느리지만 디스크 저장소보다 빠르다.

EHCache의 off-heap store 는 일반 오브젝트를 힙에서 가져 와서 직렬화하여 EHCache가 관리하는 메모리 덩어리에 바이트로 저장한다. 디스크에 저장하는 것과 같지만 여전히 RAM에 있다. 이 상태에서는 객체를 직접 사용할 수 없으므로 먼저 역 직렬화해야한다. 

 

Cache 일반적으로 애플리케이션에서 데이터베이스를 접근하게 되면 많은 시간과 비용을 소비하게 된다. 그래서 반복적으로 일어나면서 많은 양의 데이터를 가지고 와야 하는 작업은 부담이 된다. 그래서 많은 사람들은 이러한 문제를 해결하기 위해서 캐시를 사용한다. 캐시를 사용하면 데이터베이스 접근하는 횟수를 획기적으로 개선할 수 있기 때문이다.

 

Direct bytebuffer는 GC의 대상이 되지 않는다. Terrcotta BigMemory는 이를 활용하여 기능을 구현함.

ByteBuffer.allocate() JVM의 힙 영역에 바이트 버퍼를 생성한다. 인수는 생성할 바이트 버퍼 크기다. 

 

 

출처 : https://stackoverflow.com/questions/6091615/difference-between-on-heap-and-off-heap

 

Reference  

https://codeday.me/ko/qa/20190310/25698.html

https://stackoverflow.com/questions/6091615/difference-between-on-heap-and-off-heap https://blog.naver.com/PostView.nhn?blogId=hbdikei&logNo=220782330209&proxyReferer=https%3A%2F%2Fwww.google.com%2F

시스템 성능 개선을 위한 In-Memory 기술 활용 ' In-Memory Data Grid 활용 사례

https://www.samsungsds.com/global/ko/support/insights/In-Memory-Data-Grid.html

이제 필요한 것은 In Memory Data Grid https://d2.naver.com/helloworld/106824