Какой объем памяти должна использовать система кэширования в Windows?

Я разрабатываю клиент-серверное приложение, в котором сервер хранит большие фрагменты данных, такие как большие изображения или видеофайлы, которые запрашиваются клиентом и мне нужно создать систему кэширования клиента в памяти, чтобы хранить некоторые из этих больших данных, чтобы ускорить процесс. Чтобы быть ясным, каждое отдельное изображение или видео не такие уж большие, но общий размер всех из них может быть действительно большим.

Но я столкнулся с проблемой «сколько данных я должен кэшировать» и задавался вопросом, не в Windows есть какие-то золотые правила о том, какую стратегию мне следует принять. Кэширование выполняется на клиенте, мне не нужно кеширование на сервере.

  1. Должен ли я всегда оставаться на уровне менее x% от использования глобальной памяти? И сколько это будет стоить? Что произойдет, если другая программа будет запущена и займет много памяти, следует ли очистить кеш?
  2. Следует ли мне запрашивать, сколько свободной памяти доступно до кэширования, и использовать фиксированный процент этой памяти для своих нужд?
  3. . Надеюсь, мне не нужно туда идти, но следует ли мне спрашивать пользователя, сколько памяти он готов выделить моему приложению? Если да, то как я могу рассчитать значение по умолчанию для этого свойства и для тех, кто никогда не будет использовать этот параметр?
7
задан jonjbar 10 June 2011 в 11:40
поделиться