创建(和释放)数百万个小对象的最佳实践是什么?
我正在使用Java编写一个象棋程序,搜索算法为每个可能的移动生成单个“Move”对象,而标准搜索可以轻松生成每秒超过一百万个移动对象。 JVM GC已能够处理开发系统上的负载,但我有兴趣探索替代方法,以便:
- 最小化垃圾回收的开销,以及
- 减少较低端系统的峰值内存占用。
绝大多数对象的寿命非常短,但是生成的移动中约有1%会被持久化并返回作为持久化值,因此任何缓存技术都必须提供排除特定对象不被重用的能力。
我不希望完全详细的示例代码,但我希望获得进一步阅读/研究建议或具有类似性质的开源示例。