Java分配:从预先存在/已分配的池中分配对象

Wil*_*rer 1 java memory allocation

在Java程序中,当需要分配数千个类似大小的对象时,(在我看来)最好有一个"池"(这是一个单独的分配),其中包含可以在需要时提取的保留项.这个单一的大型分配不会将堆分割成数千个较小的分配.

显然,没有办法专门将对象引用指向内存中的地址(对于其成员字段)来设置池.即使新对象引用了池的某个区域,仍然需要分配对象本身.如果不诉诸本机OS库,您将如何处理这样的许多分配?

Dav*_*ton 5

您可以尝试使用Commons Pool库.

也就是说,除非我有证据表明JVM没有做我需要的工作,否则我可能会推迟优化对象创建.