JVM中有多少对象太多了?

时间:2012-08-05 10:26:37

标签: java optimization memory jvm javax.mail

我有一台装有Intel(R)Pentium(R)4 CPU 2.53GHz和2 GB RAM的旧PC。我正在迭代javax.mail.Message个实例,并且想知道内存使用的上限。

假设“常规”大小的消息,可以轻松加载多少个消息?几万,几十万?百万?

只是想找个WAG球场。

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

我是iteratingMessage,使用Leafnode NNTP从本地GNU NNTP library服务器加载。

检查邮件的标头,然后在适当的时候,使用JPQL将一些标头持久保存到数据库中。

顺便说一下,这是关于Ubuntu 11.10 GNOME经典的。

1 个答案:

答案 0 :(得分:0)

嗯,我会说它取决于你允许Java虚拟机的堆内存空间。

您可以在堆空间上侦听内存管理器通知。 如果进入超出状态,请停止加载更多消息,将消息向下舍入为您想要的值,然后对结果进行分页。