List<EgovMap> 관련해서 문의드립니다.
- 작성자 :
- 박*찬
- 작성일 :
- 2016-03-30 09:58:54
- 조회수 :
- 1,618
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
허용치가 얼마나 되는지 알고싶습니다. 문제 해결에 대한 조언도 좀...
다름이 아니라.java.lang.OutOfMemoryError: Java heap space 가 발생하고있는데요..
maria db 사용중이고..
SELECT A.*
FROM COLLECT_AUTO_POSRESULTINFO_T
A WHERE A.REG_DATE = '1455218400'
ORDER BY A.ANALYSISID ASC
이런 코드로 작성한 결과를
List<EgovMap> entities = service.selectResultList(conditions);
이런식으로 집어넣고 있는데요..
결과 건수는 평균 10만~20만건 정도 됩니다.
윈도우10 이고 64비트, 메모리8기가 환경입니다.
java는 jdk1.6.0_26 이고 tomcat7으로 돌리고 있습니다. (localhost 개발중)
이클립스의 ini 파일에는..
-Xms512m
-Xmx512m
라고 지정해 두고 있습니다.
DB에서 해당 코드 조회하면 1초 미만에 결과 나오고..
이클립스에서 로그 보면 executed in 2871 msec 정도 나옵니다만...
쿼리 실행 후에 리스트에 넣는 부분에서 오류가 나서 다음줄로 넘어가지를 못합니다.
완전히 진행이 막힌터라.. 해결 방법을 조언좀 부탁드려도 될까요...
다름이 아니라.java.lang.OutOfMemoryError: Java heap space 가 발생하고있는데요..
maria db 사용중이고..
SELECT A.*
FROM COLLECT_AUTO_POSRESULTINFO_T
A WHERE A.REG_DATE = '1455218400'
ORDER BY A.ANALYSISID ASC
이런 코드로 작성한 결과를
List<EgovMap> entities = service.selectResultList(conditions);
이런식으로 집어넣고 있는데요..
결과 건수는 평균 10만~20만건 정도 됩니다.
윈도우10 이고 64비트, 메모리8기가 환경입니다.
java는 jdk1.6.0_26 이고 tomcat7으로 돌리고 있습니다. (localhost 개발중)
이클립스의 ini 파일에는..
-Xms512m
-Xmx512m
라고 지정해 두고 있습니다.
DB에서 해당 코드 조회하면 1초 미만에 결과 나오고..
이클립스에서 로그 보면 executed in 2871 msec 정도 나옵니다만...
쿼리 실행 후에 리스트에 넣는 부분에서 오류가 나서 다음줄로 넘어가지를 못합니다.
완전히 진행이 막힌터라.. 해결 방법을 조언좀 부탁드려도 될까요...
A
안녕하세요. 표준프레임워크센터입니다.
vm환경이나 list안의 객체인 EgovMap에 담긴 변수들의 타입들도 계산해야 하기 때문에 저희측에서 정확히 확인이 불가합니다.
해당부분에 관한 외부링크를 올려드리니 우선 내용참조하시길 바랍니다.
Java의 String, ArrayList 객체의 메모리 사용량
http://sungjinlee.blogspot.kr/2013/12/blog-post.html
ArrayList의 maximum index값
http://programmers.stackexchange.com/questions/190954/what-is-the-maximum-value-of-index-of-an-arraylist
Amount of elements in ArrayList
http://stackoverflow.com/questions/17450497/amount-of-elements-in-arraylist/17450562#17450562
JVM 메모리 구조
http://huelet.tistory.com/entry/JVM-%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0
JVM구조상 10~20만건 select 결과 전체를 list 객체에 담아서 한번에 리턴시 Heap 사이즈가 계속 늘어나 OutOfMemoryError가 발생할 소지가 높습니다.
한번에 처리하기 보다는 조회범위를 줄여보시거나 페이징 개념처럼 나눠서 처리하는 것을 권장드립니다.
감사합니다.
vm환경이나 list안의 객체인 EgovMap에 담긴 변수들의 타입들도 계산해야 하기 때문에 저희측에서 정확히 확인이 불가합니다.
해당부분에 관한 외부링크를 올려드리니 우선 내용참조하시길 바랍니다.
Java의 String, ArrayList 객체의 메모리 사용량
http://sungjinlee.blogspot.kr/2013/12/blog-post.html
ArrayList의 maximum index값
http://programmers.stackexchange.com/questions/190954/what-is-the-maximum-value-of-index-of-an-arraylist
Amount of elements in ArrayList
http://stackoverflow.com/questions/17450497/amount-of-elements-in-arraylist/17450562#17450562
JVM 메모리 구조
http://huelet.tistory.com/entry/JVM-%EB%A9%94%EB%AA%A8%EB%A6%AC%EA%B5%AC%EC%A1%B0
JVM구조상 10~20만건 select 결과 전체를 list 객체에 담아서 한번에 리턴시 Heap 사이즈가 계속 늘어나 OutOfMemoryError가 발생할 소지가 높습니다.
한번에 처리하기 보다는 조회범위를 줄여보시거나 페이징 개념처럼 나눠서 처리하는 것을 권장드립니다.
감사합니다.