К сожалению, вопрос слишком широкий (есть книги по этой теме, поэтому он буквально попадает в определение оффтопа в FAQ), и поэтому, вероятно, скоро будет закрыт.
Вкратце, существует множество решений для кэширования Java, в том числе, например, Guava и ehcache.
Три лучших метода будут:
- Профиль
- Профиль
- Профиль
Во-первых, прежде чем что-то менять, во-вторых, чтобы убедиться, что ваши изменения вступили в силу, в третий раз в работе, чтобы убедиться, что ваши изменения работают в реальной жизни.
На уровнях - оба, решение зависит от данных профилирования.