【发布时间】:2011-09-12 07:52:21
【问题描述】:
我正在开发一个客户端/服务器应用程序,其中服务器保存大量数据,例如客户端请求的大图像或视频文件,我需要创建一个内存中的客户端缓存系统来保存一些那些大数据来加速这个过程。需要说明的是,每个单独的图像或视频并没有那么大,但它们的整体大小可能非常大。
但我面临着“我应该缓存多少数据”的问题,并且想知道 Windows 上是否有一些关于我应该采用什么策略的黄金法则。缓存在客户端完成,我不需要在服务器上缓存。
- 我是否应该始终保持在全局内存使用量的 x% 以下?那是多少?如果另一个程序启动并占用大量内存会发生什么情况,我应该清空缓存吗?
- 我是否应该在缓存之前请求有多少可用内存并使用该内存的固定百分比来满足我的需求?
- 我希望我不必去那里,但我应该问用户他愿意为我的应用程序分配多少内存?如果是这样,我如何计算该属性以及那些永远不会使用该设置的人的默认值?
【问题讨论】:
-
那么,一个图像可以被多个客户端请求?或者,可以在 10 分钟的间隔内多次请求一张图像?
-
图像可以被多个客户端请求,并且在 10 分钟间隔内多次请求,但我认为这无关紧要,因为我需要客户端的缓存策略,而不是服务器。
-
我不明白。在服务器端,您想为每个客户端创建一个单独的缓存吗?
-
不,我需要客户端缓存从服务器“下载”的数据,因为它们可能会被多次使用。
标签: windows delphi caching memory-management cache-control