2012-08-05 3 views
1

필자는 인텔 펜티엄 4 CPU 2.53GHz와 2GB RAM이 장착 된 오래된 PC를 가지고 있습니다. 난 javax.mail.Message 인스턴스를 반복하고있어 메모리 사용 상한선에 대해 궁금해하고 있습니다.JVM에서 얼마나 많은 객체가 너무 많습니까?

"일반"크기의 메시지를 가정 할 때 얼마나 많은 메시지를 쉽게로드 할 수 있습니까? 수십만, 수십만? 수백만?

그냥 야구장을 찾으십시오.

heap 수 있도록 :

run: 
DEBUG: nntp: newsrc loading /home/thufir/.newsrc 
DEBUG: nntp: newsrc load: 5 groups in 16ms 
Aug 05, 2012 3:52:17 AM net.bounceme.dur.usenet.driver.FetchBean <init> 
INFO: max 259522560 
Aug 05, 2012 3:52:17 AM net.bounceme.dur.usenet.driver.FetchBean <init> 
INFO: allocatedMemory 16252928 
Aug 05, 2012 3:52:17 AM net.bounceme.dur.usenet.driver.FetchBean <init> 
INFO: freeMemory 14160912 
Aug 05, 2012 3:52:17 AM net.bounceme.dur.usenet.driver.FetchBean <init> 
INFO: totalFreeMemory 257430544 
Aug 05, 2012 3:52:17 AM net.bounceme.dur.usenet.driver.FetchBean <init> 
INFO: useMemory 2092016 

나는 GNU NNTP library를 사용하여 로컬 Leafnode NNTP 서버에서로드 iteratingMessage을 통해 's을 (를)입니다.

메시지의 헤더를 검사 한 다음 적절한 경우 JPQL을 사용하여 일부 헤더를 데이터베이스에 보존합니다.

이것은 우분투 11.10 그놈 클래식에 있습니다.

+0

힙의 메모리 크기는 얼마입니까? 당신은 전체 RAM을 자바 힙에 할당 할 수 없다. – SiB

+0

@BharatSinha 힙의 일부 출력으로 업데이트했습니다. – Thufir

+1

얼마나 많은 객체가 중요하지 않지만 그들이 취하는 메모리는 중요합니다. 애플리케이션이하는 일을 설명하는 것은 어떻습니까? 아마도 약간의 최적화가 가능할 것입니다. –

답변

0

Java 가상 머신에 허용 된 힙 메모리 공간에 따라 다릅니다.

힙 공간의 메모리 관리자 알림을들을 수 있습니다. 초과 상태를 입력하면 더 많은 메시지로드를 중지하고 결과에 페이지 매김을 적용 할 값으로 메시지를 반올림합니다.