Кеш с 99 процентами попаданий работает вдесятеро быстрее, чем с 90
Речь о самом обычном кеше перед базой: приложение держит в памяти ответы на запросы, которые уже задавало, и лезет в базу, только когда ответа нет. Такой кеш оценивают по доле попаданий, и ровно на этой доле все обманываются.
Разница между 90 и 99 процентами читается как «лучше на девять процентов». Считать надо промахи. Их доля падает с десяти процентов до одного, то есть в десять раз, а вся работа базы сидит именно в промахах.
Разработчик проверил это на стенде. Один и тот же запрос 10 000 раз без кеша занял почти две секунды работы базы. С обёрткой на обычном ConcurrentHashMap вышло 0,6 миллисекунды и ровно один поход в базу: ускорение в 3084 раза там, где он предсказывал сотню. Долю попаданий он задавал руками, а время мерил по-настоящему.
Пригодится, когда придётся объяснять, зачем тратить спринт на подъём попаданий с 90 до 99. В таблице замеров выигрыш посчитан для четырёх разных долей.
Post #14792
8.6K
- 💊 10
- ❤ 5
- 👏 5
- 👍 4
- ❤🔥 1
- 🎉 1
- 🌚 1
- 🌭 1
- 🤣 1
- 😨 1
- 🫡 1