gpt4 book ai didi

windows - 缓存系统应该在 Windows 上使用多少内存?

转载 作者:可可西里 更新时间:2023-11-01 13:05:33 25 4
gpt4 key购买 nike

我正在开发一个客户端/服务器应用程序,其中服务器保存大量数据,例如客户端请求的大图像或视频文件,我需要创建一个内存客户端缓存系统来保存一些那些大数据加速了这个过程。需要说明的是,每个单独的图像或视频并没有那么大,但它们的整体尺寸可能非常大。

但我面临着“我应该缓存多少数据”的问题,并且想知道 Windows 上是否有关于我应该采用什么策略的某种黄金法则。缓存在客户端完成,我不需要在服务器上缓存。

  1. 我是否应该始终保持在全局内存使用量的 x% 以下?那会是多少?如果启动另一个程序并占用大量内存会怎样,我应该清空缓存吗?
  2. 我是否应该在缓存之前请求有多少空闲内存可用,并使用该内存的固定百分比来满足我的需要?
  3. 我希望我不必去那里,但我应该问用户他愿意为我的应用程序分配多少内存吗?如果是这样,我如何计算该属性的默认值以及那些永远不会使用该设置的人的默认值?

最佳答案

与其创建自己的缓存算法,不如将数据写入带有 FILE_ATTRIBUTE_TEMPORARY 的文件中属性并使用客户端机器自己的缓存。

虽然这种方法似乎暗示您使用文件,但如果系统中有可用内存,那么该文件将永远不会离开缓存,并且会一直保留在内存中。

一些优点:

  • 您不需要编写任何代码。
  • 系统缓存会考虑所有其他正在运行的进程。你自己承担这件事是不切实际的。
  • 在 64 位 Windows 上,系统可以将所有可用内存用于缓存。在 32 位 Delphi 进程中,您仅限于 32 位地址空间。
  • 即使您的缓存已满并且您的文件要刷新到磁盘,本地磁盘访问也比查询数据库然后通过网络传输文件快得多。

关于windows - 缓存系统应该在 Windows 上使用多少内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com