Это больше похоже на обобщенный вопрос, поэтому я приведу некоторые обобщенные мысли из моего собственного опыта.
Есть ли лучшие методы кэширования в Grails? Синхронизированные списки - хорошее решение?
Может быть несколько слоев кеша в зависимости от того, с чем вы имеете дело. Однако я не верю, что сам Грааль сам кеширует что-либо в отношении вашего вопроса; Существуют настраиваемые параметры и плагины, которые позволяют вам кэшировать все: от запросов, классов домена, вызовов служб, фрагмента страницы, изображений, CSS и всего остального. Не говоря уже о вашей базе данных, и другие слои могут иметь свои собственные параметры кэширования.
Сказав, что я бы избегал использования ваших собственных методов кэширования, если только вы не имеете дело с очень специфической проблемой , когда вы знаете, что можете работать лучше, чем более общий подход, такой как кэш второго уровня (например, EHCache).
Если вы свернете свой собственный кэш , вы захотите знать обо всем остальном, что также может кэшировать тот же контент. Кэширование кешированного объекта в форме кешированного запроса сложно отладить.
Если производительность вас беспокоит, вы всегда должны делать некоторые тесты, прежде чем что-то менять. Чтобы действительно получить максимальную производительность из всего, что вам нужно, вы должны понимать, как она работает. Grails, hibernate и spring работают вместе над производительностью, и это не то, что я могу выразить в нескольких предложениях, но есть плагины это может помочь вам понять, что происходит за кулисами, например JavaMelody .
Наконец, если вы уже создали что-то, что работает, и все счастливы, не ломайте это. :)