Java 用于缩短昂贵对象创建时间的缓存?
我必须使用一个遗留库,它在某些方面在对象创建上非常昂贵(只有“普通”对象,没有数据库连接或类似)。 在我用它编写Web服务时,将有许多线程指向该库 主要问题是垃圾收集器必须清理每个线程中的所有重对象 现在我介绍了几种缓存池方法。但我在这方面没有经验。 如果对象创建非常昂贵,您能推荐最适合的缓存池库吗Java 用于缩短昂贵对象创建时间的缓存?,java,multithreading,caching,pool,Java,Multithreading,Caching,Pool,我必须使用一个遗留库,它在某些方面在对象创建上非常昂贵(只有“普通”对象,没有数据库连接或类似)。 在我用它编写Web服务时,将有许多线程指向该库 主要问题是垃圾收集器必须清理每个线程中的所有重对象 现在我介绍了几种缓存池方法。但我在这方面没有经验。 如果对象创建非常昂贵,您能推荐最适合的缓存池库吗 番石榴 阿帕奇公地 还是自己实现 对象创建不再是过去的样子了——它效率更高了。在大多数情况下,使用现代JVM时,最好不要担心它。不要引入创建自己的缓存代码的复杂性和维护开销,除非您确定确实需要这样
- 番石榴
- 阿帕奇公地
- 还是自己实现
new
。“垃圾收集器必须清理所有重对象”是胡说八道。垃圾收集器不依赖于实际上是垃圾的对象。它只处理仍处于活动状态的对象。所以缓存意味着让更多的对象保持活动状态,从而提高垃圾收集器的工作效率?这有很大的不同。“遗留”库实际上并不重要,除非它使用自己的pooling.JDK 7,通常总是使用最新版本。遗留系统没有自己的池机制。您是否实际分析了您的应用程序,并确定对象构造/GC是瓶颈?现代JVM可以很好地处理多个new
。“垃圾收集器必须清理所有重对象”是胡说八道。垃圾收集器不依赖于实际上是垃圾的对象。它只处理仍处于活动状态的对象。因此,缓存意味着保持更多对象处于活动状态,从而提高垃圾收集器的工作效率。