我有一个计算密集型的离线处理任务,需要几个小时才能运行完。我正在使用Caffeine作为我的内存缓存。如何设置最大缓存大小是一个好的启发式方法?我使用8GB的RAM运行我的Java程序,并愿意给缓存约4GB的内存,但我不确定内存如何转换为缓存实际大小。我决定采用
.softValues()
让JVM来决定,但在Caffeine的JavaDoc中遇到了以下警告:
警告:在大多数情况下,最好设置每个缓存的最大大小,而不是使用软引用。只有在您熟悉软引用的实际后果时,才应使用此方法。