我使用java mail api从IMAP文件夹中获取消息。我们有一个包含 1000 条消息的文件夹。假设,第一条消息的UID 2000 ,最后一条消息的UID 8000 。
当我们为所有消息执行get时:
//call 1
// use indices, get the range 1-1000
Message m1[] = folder.getMessages(1, 1000);
消耗的内存非常少,但另一方面
//call 1
// use the first UID and last UID in the folder
Message m2[] = folder.getMessagesByUID(2000, 8000);
使用分析器分析时,会消耗大量内存。
返回的数组大小相同,两个数组的成员(消息模板)完全相同。但我无法解释为什么call2会消耗大量内存?