метрики для сценария ниже.
Упрощённая схема такая:
1. Каждых K секунд я итерируюсь по объектам.
2. Для каждого объекта, нужно определить является ли объект "cold", имея количество доступов к нему.
3. Затем нужно подправить метрику "cold".
4. Затем нужно изменить "access counter", используя какую-то decay логику.
Была идея задать количество памяти для hot и всё, что не попало в неё, то считать cold, но так я не могу сортировать множество без сильных задержек, а только итерироваться по нему, то не понятно, как это сделать.
Есть у кого идеи, как это можно сделать? Откинем привязку к performance overhead пока что.
if cumulativeSize + objectSize <= hotMemoryLimit: cumulativeSize += objectSize dynamicThreshold = dynamicThreshold * 1.1 else: dynamicThreshold = dynamicThreshold * 0.9 Вот так можно, но это слишком просто. Есть какие-то общепринятые подходы для этого?
Например, 10% это ок или не ок - не понятно )
Обсуждают сегодня