Я разрабатываю клиент-серверное приложение, в котором сервер хранит большие фрагменты данных, такие как большие изображения или видеофайлы, которые запрашиваются клиентом, и мне нужно создать клиентскую систему кэширования в памяти для хранения некоторых из этих больших данных. для ускорения процесса. Просто для ясности: каждое отдельное изображение или видео не такое уж большое, но общий размер всех из них может быть очень большим.
Но я столкнулся с проблемой «сколько данных я должен кэшировать», и мне было интересно, есть ли какие-то золотые правила в Windows о том, какую стратегию я должен принять. Кэширование выполняется на клиенте, мне не нужно кеширование на сервере.
- Должен ли я всегда оставаться ниже x% использования глобальной памяти? И сколько бы это было? Что произойдет, если запустится другая программа, занимающая много памяти, нужно ли очищать кеш?
- Должен ли я запрашивать, сколько свободной памяти доступно до кэширования, и использовать фиксированный процент этой памяти для моих нужд?
- Я надеюсь, что мне не нужно идти туда, но должен ли я спросить пользователя, сколько памяти он готов выделить для моего приложения? Если да, то как я могу рассчитать значение по умолчанию для этого свойства и для тех, кто никогда не будет использовать этот параметр?