或者,它将以更快的速度重新阅读的数据映射的记忆再次,由于OS可能实施其自己的高速缓存?

数据的性质不是预先知道的,假定文件的读取的是随机的。

有帮助吗?

解决方案

我想提几件事情我已经读了关于该主题。答案是 没有, 你不想要第二猜测操作系统的存管理。

第一个涉及从构思,你想要你的节目(例如也SQL服务器)来尝试限制你的记忆基于百分比的免费RAM:

不要试图分配存储器,直到只有x%免费的

偶尔,一个顾客会要求的方式设计自己的程序,所以它将继续消耗RAM,直到只有x%是免费的。这个想法是,他们的程序应该使用RAM积极,同时仍然留出足够的可用RAM(x%)用于其他用途。除非你设计一个系统里,你是只有计算机上运行的程序,这是一个糟糕的想法。

(阅读本文的解释的 为什么 这是不好的,包括图片)

接下来是一些注意到从提交人的清漆、和逆向代理:

漆Cache-注意到建筑师

所以会发生什么鱿鱼的阐述存管理是,它进入战斗的核阐述存储管理,并且像任何战争,就永远不会得到任何东西做。

会发生什么情况是这样的:鱿鱼创建一个HTTP对象"RAM",并得到使用了一些时间后迅速创造。然后经过一段时间后它没有得到任何更多的点击和内核的通知这一点。然后有人试图获取存储器内核对和核心决定推动那些未使用的网页记忆出来空间交换和使用(cache-RAM)更合理地对某些数据实际使用的程序。然而,这样做是没有鱿鱼了解它。鱿鱼仍然认为,这些http对象是在RAM,他们将能,第二,它试图访问他们,但直到那时,用的东西的富有成效的。

想象一下你 高速缓冲的东西从一个存储器的映射的文件。在某一点在未来的记忆保持的"高速缓冲存储器"将被换出来的磁盘。

  • 操作系统编写,以硬盘驱动器的东西 已经存在 在硬盘驱动器

下次来的时候你想要的执行查找自己的"高速缓冲存储器"存储,而不是"真正的"存储器。你试图访问"高速缓冲存储器",并且因为它已被换出RAM的硬件提出了一个 PAGE FAULT, 和缓交换回RAM。

  • 你的高速缓冲存储器只是因为缓慢,因为"真正的"存储器,因为两者都不再在RAM

最后,你想要免费的高速缓冲存储器(也许你的节目是关闭).如果"高速缓冲存储器"已被换出,操作系统必须首先换回,以便它可以释放。相反,如果你只是映射你的记忆映文件,一切都过去了(没有什么需要换)。

  • 在这种情况下缓存,使事情变得较慢

再次从Raymon陈:如果应用程序是关闭已经:

当DLL_PROCESS_DETACH告诉你,这个过程是退出你最好的赌注是刚刚返回没有做任何事情

我经常使用的程序没有遵循这个规则。该程序 分配大量的存储期间的生活,并且当我 退出节目,它只是坐在那里几分钟,有时候 纺丝在100%CPU,有时翻腾的硬盘驱动器(有时 两个)。当我打破在调试器,看看发生了什么事情在我 发现,程序不做任何富有成效的。这只是 有条不紊地释放每一个字节的记忆,它已分配过 其使用寿命。

如果我的计算机不是根据大量的存储器的压力,那么大多数的 存储程序已经分配在其使用寿命期间还没有 调出,以腾出的每一滴的记忆是一个中央处理器-开 操作。另一方面,如果我有了一个建造或完成的 别的东西存密集型的,那么大多数的存储程序 已分配给在其生命周期已经调出的,这意味着 该程序所有网页记忆回到从硬盘驱动器,只是这样 它可以拨打免费的。听起来有点恶意的,实际上。"来吧 在这里这样我就可以告诉你要走远。"

所有这肛门-rententive存管理是毫无意义的。该过程 是退出。所有的存储器将被释放时地址的空间 摧毁。别浪费时间,而刚刚退出了。


现实是,程序不再运行中 "RAM", 他们运行中 存储器 - 虚拟 存储器。

你的 可以 使用缓存,但,你有工作 操作系统的虚拟存储管理:

  • 你想保持你的速缓存在几个 网页 作为可能的
  • 你想确保他们留在RAM,由于他们被访问的很多(即实际上是一个有用缓存)

访问:

  • 一个1千字节的地点周围的400GB文件

是更昂贵的访问

  • 一个单一的1000字节的地理位置在400GB文件

换句话说:你真的不需要 高速缓存 数据,需要更多的本地化 数据结构.

如果你保持你的重要数据只局限于一个单一的4k页,你将发挥更好的映射。Windows 你的高速缓存。

当你增加64字节的四个词对准cache-线路,甚至还有更多的激励,以调整的数据结构布局。但你不想要它 紧凑,或者你会开始遭受性处罚的缓冲,从 假共享.

其他提示

答案是高度OS特定的。一般来说,会有缓存这个数据没有任何意义。无论是“高速缓存”的数据,以及存储器映射可以在任何时间被寻呼的路程。

如果将有任何差异将是特定于OS - 除非你需要的粒度,存在高速缓存中的数据没有意义的

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top