Лучшее (и я думаю чиновник), помещают для обнаружения об этом, находится на блоге Andrew Kennedy.
Вот (текущие) соответствующие сообщения.
, Поскольку я сказал в сообщении, что Ваша отвечающая сторона упомянула, это - совершенно определенно что-то, что Вы не МОЖЕТЕ сделать в C# (хотя мне жаль, что Вы не могли).
Для многих случаев сложных графов объектов у меня была достаточно хорошая производительность с однострочным
new MapMaker().weakKeys().makeMap();
Это создает карту с использованием коллекций Google , которые можно использовать как кеш для сложных объектов.
Поскольку ключи слабые и в конечном итоге выходят за рамки, маловероятно, что это вызовет проблемы с памятью.
Так что я бы сказал для простых случаев - не беспокойтесь о «когнитивная нагрузка» распределенного кеша. Проблемы с сериализацией, задержкой и т. Д. Вы не захотите с ними справляться.
«Зачем мне писать статический класс, когда я смогу забрать готовый cache? "
Если вы не хотите включать сторонние зависимости в свой проект и нет лучшего способа научиться писать кеши.
Существует множество реализаций кеширования, как с открытым исходным кодом, так и коммерческих. Есть много проблем, связанных с написанием правильного кеша - время, когда объекты должны покинуть, политики выселения, постоянство, управление памятью и многое другое, поэтому я не стал бы запускать свой собственный (зачем изобретать велосипед?)
Take взгляните на одну из следующих реализаций:
Подробнее см. http://java-source.net/open- source / cache-solutions