Согласно документации для Guava MapMaker.softValues ()
:
Предупреждение: в большинстве случаев лучше установить максимальный размер для каждого кэша вместо использования мягкие ссылки. Вам следует использовать этот метод только в том случае, если вы хорошо знакомы с практическими последствиями мягких ссылок.
У меня есть промежуточное понимание мягких ссылок - их поведение, использование и их договор со сборкой мусора. Однако мне интересно, каковы эти практические последствия, о которых говорится в документе. Почему именно максимальный размер лучше использовать мягкие ссылки? Разве алгоритмы и поведение мягких ссылок не делают их использование более эффективным, чем жестко заданный потолок, с точки зрения реализации кеша?