精华内容
下载资源
问答
  • 2021-06-18 02:41:50

    我在网上找到了一款能把内存虚拟成硬盘缓存的软件,FancyCache。我想知道这个软件应该如何使用,FancyCache都有哪些功能,时候会对内存造成损坏?

    不会对内存造成损坏的,这个软件也和其他的软件一样依托与Windows系统任务管理器来使用内存的,并不是什么特殊的软件,关于使用方法,单独说那个功能也不好,而且我也没怎么用过这个软件,下面是一份FancyCache 使用帮助文档。

    ==============================================================

    FancyCache有两个版本:分区版和硬盘版。两者区别仅在于前者可对每个分区设置缓存,而后者对整个硬盘设置缓存。其他在使用设置上均相同,因此本节仅以分区版为例做介绍。

    用户界面

    FancyCache主用户界面分为四部分,如下所示,

    355c36e4d3e0d4b00213e552e58bc454.png

    区①: 分区/硬盘列表

    区②: 选定分区/硬盘的缓存设置区

    区③: 选定分区/硬盘的缓存状态区

    区④: 全局内存控制和信息区

    术语

    缓存粒度:一般该值越小,可以带来较高的性能,但同时也增大系统的额外开销,尤其当目标分区/硬盘的容量比较大时,较小的值将大大增加系统额外分配的内存值。程序自动会根据目标分区/硬盘的容量给出建议值,用户如果需要,可以在建议值的基础上调整1~2档。

    缓存大小(一级缓存):一级缓存由系统内存组成,因此该值表示从系统分配的内存大小用作选定分区/硬盘的一级缓存。

    缓存算法:当缓存数据满的时候,选择何种方式丢弃旧的缓存数据,以便有空间保存新的缓存数据。

    LRU (Least Recently Used): 最近最少使用调度算法,首先丢弃最近最少被使用的数据。

    LFU (Least Frequently Used): 最近最不常用调度算法,软件统计数据被使用的频率,使用频率最低的数据首先被丢弃。

    缓存策略:根据实际应用选择相应的缓存策略可以更有效的提高缓存命中率。

    缓存读写: 对读取和写入操作均进行缓存。

    仅缓存读: 仅对读取数据进行缓存,写入数据则不占用缓存。

    仅缓存写: 仅对写入数据进行缓存,读取数据则不占用缓存。

    延时写入:当外部数据写入缓存时,通常也需要将这些数据写入至分区/硬盘。如果不勾选此选项,则每次收到写入请求时,同步的将数据写入到分区/硬盘,并等待分区/硬盘写入完成后才完成写入请求。这种方式和平时写硬盘的方式一致,不必担心突然断电造成部分缓存数据来不及写入硬盘,但是另一方面对写入性能也不会有提升。当勾选此选项,也即启用延时写入功能时,每次收到写入请求时,数据先写入缓存中,并完成该写入请求。同时缓存在后台根据算法和用户设置的延时时间,每隔一段时间将数据写入到分区/硬盘。这种方式可以合并在同一地址上的多次写入,并具有一定的数据排序功能,从而可以提升写入性能。但另一方面,用户需注意在突然断电或其它应用程序导致的蓝屏错误情况下,有部分数据可能还存在于缓存中未来得及写入,这会造成数据丢失。

    写入后优先释放缓存:当此项勾选时,则包含待写数据的缓存在完成数据写入至硬盘后,将优先被丢弃。

    关机时丢弃缓写数据:当此项勾选时,则在计算机关机时软件将丢弃尚未写入分区/硬盘仍在缓存中的数据。请注意此选项仅在特殊环境中使用,一般用户请勿勾选,否则可能会造成数据丢失。

    均匀写入缓写数据:默认情况下,当设置的延时时间到后,所有当前缓写的数据将被一次性地写入硬盘。当此项勾选时,缓写数据不是在延时到期后才开始写入,而是在整个延时期间内都会均匀化的写入硬盘。该选项主要防止突发大量写入造成用户响应迟滞的问题。通常用户不需开启这个选项。

    防止HDD C1过快增大: 避免部分机械硬盘,尤其是笔记本硬盘,的C1指标异常快速增大。SSD的用户不需要勾选此项,以便获取最佳性能。

    这里C1指"Load/Unload Cycle Count",即磁头伸出/缩进的次数。

    二级缓存:用户可以使用系统未识别内存或闪存盘/SSD固态硬盘作为二级缓存。如前所述,一级缓存有系统内存组成,其读写性能要高于二级缓存,当然二级缓存的读写性能仍要比普通硬盘好。缓存数据首先保存在一级缓存中,当一级缓存满的时候,数据将从一级缓存中转存到二级缓存中。注: 二级缓存可能发送大量的交换数据写入,因此对于SSD/闪存的寿命有较大影响。

    MBU (Maximum Block Usage): 此替换算法以提供最大缓存能力为目标。当二级缓存满负载时,二级缓存中的数据会被淘汰替换以便容纳新数据。此算法容易引起一级缓存和二级缓存之间频繁的数据交换。

    LBW (Least Block Written): 此算法以最少写入为目标。当二级缓存满负载时,不进行数据替换,即不再接受新数据写入。此算法主要用于SSD/闪存,以避免过多的写入。注: 虽然此时二级缓存不发生数据替换,但一级缓存仍进行数据替换。

    b5319fb6c74c21a45ba1b8e96f453292.png

    操作帮助

    如何启用系统未识别内存(32位桌面操作系统)

    为使用系统未识别内存,用户首先需要启用系统未识别内存功能。勾选界面区④中选项 “Enable OS Invisible Memory” ,然后程序将会显示检测到的未识别内存信息(IM Free/Total)。

    注:自版本 0.7.0,FancyCache 引入了新的模块管理未识别内存:未识别内存管理接口。

    如何启动缓存功能

    步骤1: 在区①,选择需要被缓存的分区/硬盘;

    步骤2: 在区②,设置需要的缓存配置;

    步骤3: 在区②,点击 “启动缓存” 按钮启动缓存功能。如果成功,程序会在区③显示缓存运行状态。

    缓存开启后,无论用户退出应用程序或重新启动计算机,一直自动运行。因此用户无需在计算机重启后手动运行应用程序。

    如果需停止缓存功能,点击 “停止缓存” 按钮。停止后,所有已缓存的数据将被清除。

    如果需暂停缓存功能,点击 “暂停缓存” 按钮。此时,所有已缓存的数据仍保留。

    如何手动将缓存数据更新到分区/硬盘

    当启用延迟写入方式时,程序根据延时时间和其它算法自动将缓存中的数据更新到分区/硬盘。如果有需要,用户也可以进行手动更新。

    步骤1: 在区①,选择目标分区/硬盘;

    步骤2: 在区②,点击 “写入缓写数据” 按钮,程序将仍在缓存中的数据更新到分区/硬盘。

    如何查看缓存状态和性能统计

    步骤1: 在区①,选择要查看的分区/硬盘;

    步骤2: 在区③,程序显示当前缓存运行状态;

    步骤3: 在区③,点击 “性能监视” 按钮查看性能统计数据。请注意统计数据在性能监视对话框打开时开始统计,在对话框退出后统计数据将清零。

    267a30ab709f374215142bba5d773ab8.png

    上图中,Read Hit Rate = Read Bytes (Cached) / Read Bytes (Total) * 100%,

    其中,Read Bytes (Cached) 指从L1 Cache 和L2 Cache 读取的字节数,Read Bytes (Total) 指读取的字节总数,包括从Cache (L1 + L2) 和 Disk/Volume读取的字节数总和。这个指标反映了Cache的利用率。

    更多相关内容
  • primocache 是一款专业的硬盘优化软件,它的原理是把内存虚拟成硬盘缓存来实现硬盘优化,本次小编发布的是primocache,中包含两个版本分别是PrimoCache普通版和PrimoCache服务器版都是本,两个版本打包下载。...

    primocache 是一款专业的硬盘优化软件,它的原理是把内存虚拟成硬盘缓存来实现硬盘优化,本次小编发布的是primocache,中包含两个版本分别是PrimoCache普通版和PrimoCache服务器版都是本,两个版本打包下载。

    界面预览图:

    c1ffd886c23cc13e44b9bd2148ebcc29.png

    PrimoCache 是一个可以把物理内存、SSD 硬盘或闪存盘等虚拟成硬盘缓存的软件(虚拟内存盘软件),它可以自动把硬盘中读取的数据存入物理内存等速度较快的设备,当系统再次需要该数据时它可以很快从缓存设备中读取,而不需要再次访问速度较慢的硬盘,从而有效提升物理硬盘的访问性能。

    6179eafe2576051fa34b079b7b79ef63.png

    PrimoCache软件可以帮您提升机械硬盘性能,使其性能超越SSD固态硬盘。

    说白了PrimoCache就是一种软件缓存解决方法,可与物理内存,固态驱动器(SSD)与闪存驱动器配合使用,为本地物理磁盘或iSCSI磁盘提供数据缓存。 它把磁盘数据透明地存储到快速缓存设备(如物理内存)中,以便把来可以直接从缓存中提供对这些数据的读取请求,并且速度更快。 因此,访问时间把减少,显示出系统读取性能的巨大修正。

    此外,PrimoCache可以通过第一步把传入数据写入快速缓存设备并稍后写回目标磁盘来快速完成写入请求,从而大大提升了系统编写性能。

    PrimoCache 支持把 SSD 硬盘作为传统机械硬盘的缓存,并且支持永久保持缓存内容,即计算机关机后缓存内容不会丢失。这个特性可以显著提升计算机的启动时间并加速应用程序的运行。 PrimoCache 也支持缓写功能,即可以把系统请求写入的数据先存入缓存设备中,在一定时间后再把数据从缓存设备写入物理硬盘中。缓写功能使系统的写入请求可以快速完成,从而极大地提升硬盘的写入性能。

    此外,PrimoCache 支持使用系统未识别内存作为缓存设备,从而克服部分 Windows 系统对内存总量的限制(例如 32 位桌面 Windows 系统最大仅支持 4GB 内存),充分使用全部物理内存。 PrimoCache 实现了多种缓存策略与灵活的缓存设置,您可轻松为您的物理硬盘创建缓存,提升硬盘的读写性能。

    29016eaae86d564700f55851e302d576.png

    PrimoCache普通版支持系统:

    All versions of Windows XP/Vista/7/8/8.1/10, including x86 and x64 editions.

    PrimoCache服务器版支持系统:

    All versions of Windows Server 2003/2003R2/2008/2008R2/2012/2012R2/2016, including x86 and x64 editions.

    PrimoCache 硬盘优化软件功能:

    1、如果您的计算机装有4GB或更多内存,您可以使用一部分内存作为缓存加速本地磁盘,包含机械硬盘、SSD固态硬盘、闪存盘等,或iSCSI磁盘。

    2、如果您的计算机有一部分内存不能被Windows使用,一般是32位Windows系统,您可以使用这部分丢失的内存作为缓存来加速本地磁盘与iSCSI磁盘。

    3、如果您的计算机一个SSD硬盘与一个普通机械硬盘,您可以使用一部分或全部SSD空间作为缓存来加速机械硬盘。

    4、如果您有一个空闲的USB 3.0 闪存盘,您可以用这个闪存盘作为缓存加速普通机械硬盘。

    PrimoCache 硬盘优化软件特点:

    1、支持物理内存,固态驱动器与闪存驱动器作为缓存存储。

    2、实现两级缓存架构。

    3、支持持久的2级缓存。

    4、支持Write-Through与Write-Deferred缓存模式。

    5、支持独自的读/写缓存空间。

    6、支持TRIM命令。

    7、支持OS隐形内存。

    8、支持把数据预取到缓存中。

    9、实现智能与自我调整缓存替换算法。

    10、支持缓存策略:读/写缓存,只读缓存与只写缓存。

    11、支持性能统计与监控。

    12、支持多个卷的缓存

    13、支持使用专有文件系统缓存卷。

    14、支持在基本磁盘与动态磁盘上缓存卷。

    15、支持每个卷的独自缓存控件。

    16、支持即插即用。

    17、支持命令行界面。

    primocache V2.2.0安装方法:

    1、解压后,先安装PrimoCache2.2.0官方。

    2、安装好PrimoCache2.2.0官方后,以管理员权限运行PrimoCache 2.2.0无限试用补丁,这个无线试用补丁就是补丁。

    无限试用----到期后点(无限试用)可继续试用60天!

    永久----会加载一个开机启动项来实现永久!

    还可手动把PrimoCacheSoft.exe添加自启,实现永久。

    PrimoCache 高命中率设置方法:

    1、向导模式:选择你要缓存的盘(建议设置常用软件的盘 与 系统盘,不要全部盘都设置哦,内存会占用很大) → 设置内存(如果你的内存是8G,建议设置 2G内存当缓存) → 缓存颗粒(如果你的CPU够好,可以设置4KB) → 缓存策略(小编建议仅读,如果读写的话,突然停电可能导致数据丢失,内存满了不够写入数据,可能会蓝屏)。

    d6c591be454895537b5c051344714a87.png

    2、二级缓存根据你的实际情况设置,还具有预读与延迟写入。

    3、配置完成后,把常用的软件运行一次,就会写入内存缓存,等下次启动软件时,速度会大幅度提升,当然PrimoCache有个命中率,被缓存读到的软件才会加快。其中最明显的应该是网页加载的速度 与 大型软件(如:Adobe 全家桶)、游戏的启动速度。

    b1f86d0e447257795d8c0e390b3d957d.png

    4、配置如下。

    一级缓存:9216MB (大于测试长度1GB)

    粒度大小:4KB

    缓存策略:读数据 + 写数据

    延时写入:关闭

    未使用PrimoCache的硬盘读速度截图:

    68c254d8616553ec7aa109f98b272c2a.png

    使用PrimoCache后的硬盘读速度截图:

    d6b8e4b6966b81dbee82def4763fa09f.png

    PrimoCache 常用问题集合:

    1:如果我退出PrimoCache应用程序后缓存还生效吗?我是否需要每次计算机启动后打开并运行PrimoCache?看起来好像PrimoCache没有自动随Windows启动而运行?

    答:就算您关闭退出PrimoCache应用程序,缓存任务仍一直在运行。创建好的缓存任务会自动随Windows启动而运行,您不需要打开PrimoCache。您唯有执行停止缓存命令或卸载PrimoCache才可以终止缓存功能。

    2:PrimoCache可以缓存网络映射磁盘吗?

    答:不能。PrimoCache只能缓存本地磁盘或iSCSI磁盘。

    3:我可以指定缓存某些文件夹或文件吗?或者我可以指定不缓存某些文件吗?

    答:不可以。PrimoCache是一个基于磁盘数据块设计的缓存软件,而不是基于文件。它无法获取具体的文件信息。

    4:二级缓存的数据在计算机重启后还存在吗?

    答:是的。

    5:我可以使用SSD硬盘为机械硬盘提供写缓存吗?我已经打开了延时写入功能,我想把写入数据先存到SSD上,而后在系统空闲时再把SSD上的数据存至机械硬盘。

    答:是的,自3.0版本起,PrimoCache已经支持这个功能。默认设置下,二级缓存仅用于提供读缓存,如果您需要二级缓存提供写缓存,您需要点击面步骤修改默认设置:

    在缓存配置对话框中,点击二级缓存高级设置图标按钮,

    如果您希望读操作与写操作共享使用整个二级缓存空间,则取消选择独自的读与写缓存空间。不然移动滑动条设置需要的写缓存空间比例。

    现在,当延时写入打开时,二级缓存可以为机械硬盘等提供写缓功能。

    6:我的Windows分区是写保护的,我发现每次计算机重启时二级缓存的数据就会丢失,又要重新缓存。

    答:PrimoCache内置了一个检测机制来确保二级存储设备上的缓存数据与磁盘上的源数据一致。如果检测到数据可能不一致,PrimoCache把删除所有二级缓存数据重新进行缓存。这个检测机制是通过追踪与更新Windows注册表标志来实现的,因此您必须确保Windows所在逻辑卷是可写的,而不是写入保护,不然PrimoCache把无法更新注册表标志,导致其以为二级缓存数据过期而删除所有缓存数据。同样地,如果计算机由于崩溃、死机或断电等原因导致Windows不能正常关机,PrimoCache可能来不及更新注册表标志,导致以为缓存数据过期而删除所有二级缓存数据。

    提示:

    PrimoCache有两个版本:普通版与服务器版。

    如果是Windows XP,Vista,win7,win8,win8.1或win10系统,您可下载PrimoCache普通版进行安装。

    如果是Windows服务器系统,例如Windows Server 2003(或R2),2008(或R2),或2012(或R2),就一定要下载PrimoCache服务器版。

    展开全文
  • 内存虚拟硬盘缓存

    2014-09-09 14:22:47
    内存虚拟硬盘缓存的操作方法和软件。加快系统运行速度。
  • FancyCache是一个可以将系统内存或闪存虚拟成硬盘缓存的软件。它把从硬盘中读取的数据存入系统内存或闪存,使系统在下次访问该数据时可以很快从内存读取,避免再次读取速度较慢的硬盘,从而突破硬盘瓶颈,提升系统...
  • 和存储器层次结构中其他缓存一样, 磁盘(较低层)上的数据被分割块,这些块作为磁盘和主存(较高层)之间的传输单元。VM系统通过将虚拟内存分割为称为虚拟页(VP)的大小固定的块来处理这个问题。每个虚拟页的大小...

    1、虚拟内存概述

    1. 虚拟内存的组织形式

    虚拟内存被组织为一个由存放在磁盘上的N个连续的字节大小的单元组成的数组。每字节都有一个唯一的虚拟地址, 作为到数组的索引。磁盘上数组的内容被缓存在主存中。

    和存储器层次结构中其他缓存一样, 磁盘(较低层)上的数据被分割成块,这些块作为磁盘和主存(较高层)之间的传输单元。VM系统通过将虚拟内存分割为称为虚拟页(VP)的大小固定的块来处理这个问题。每个虚拟页的大小为P= 2 p 2^p 2p字节。类似地,物理内存被分割为物理页(Physical Page, PP), 大小也为P字节(物理页也被称为页帧(page frame))。

    2. 虚拟页面的状态

    任意时刻,虚拟内存页面的集合会被分割为三个不相交的子集。

    1. 未分配的
      VM系统还未分配(或者创建)的页。未分配的块没有任何数据和它们相关联,因此也就不占用任何磁盘空间。也就是这个编号的页还不存在
    2. 缓存的
      当前已缓存在物理内存中的已分配页。
    3. 未缓存的
      未缓存在物理内存中的已分配页。

    如下图所示:
    在这里插入图片描述

    2、DRAM 缓存的组织结构

    这里用DRAM表示主存。
    因为不命中要从磁盘中读取信息,DRAM 缓存的组织结构完全是由巨大的不命中开销驱动的。

    1. 因为大的不命中处罚和访问第一个字节的开销, 虚拟页往往很大, 通常是4KB~2MB。
    2. 由于大的不命中处罚, DRAM 缓存是全相联的, 即任何虚拟页都可以放置在任何的物理页中。
    3. 不命中时的替换策略也很重要, 因为替换错了虚拟页的处罚也非常之高。因此, 与硬件对SRAM 缓存相比, 操作系统对DRAM 缓存使用了更复杂精密的替换算法。
    4. 最后, 因为对磁盘的访问时间很长, DRAM 缓存总是使用写回, 而不是直写。

    3、页表

    由于要进行虚拟页和物理页面的替换,或者需要查看虚拟页是否已经缓存在主存中,所以虚拟页面和物理页面的对应关系一定要记录下来。页表的主要功能就是将虚拟页映射到物理页。每次地址翻译硬件将一个虚拟地址转换为物理地址时, 都会读取页表。其主要结构如下:
    在这里插入图片描述

    页表就是一个页表条目(Page Table Entry,PTE) 的数组。虚拟地址空间中的每个页在页表中一个固定偏移量处都有一个PTE。

    1. 页表条目的结构

    我们将假设每个PTE 是由一个有效位(valid bit)和一个n 位地址字段组成的。
    有效位表明了该虚拟页当前是否被缓存在DRAM 中。

    • 如果设置了有效位那么地址字段就表示DRAM 中相应的物理页的起始位置。
    • 如果没有设置有效位
      – 如果地址为空,则表示这个虚拟页还未被分配。
      – 如果地址不为空,则地址就指向该虚拟页在磁盘上的起始位置。

    上图中的例子解释如下:
    四个虚拟页(VP 1 、VP 2 、VP 4 和VP7) 当前被缓存在DRAM 中。
    两个页(VP O 和VP 5)还未被分配, 而剩下的页(VP 3 和VP 6) 已经被分配了, 但是当前还未被缓存。图9-4 中有一个要点要注意, 因为DRAM 缓存是全相联的, 所以任意物理页都可以包含任意虚拟页。

    4、 页命中与缺页

    1. 页命中

    顾名思义,就是CPU想要读取虚拟内存某个虚拟地址的字的时候,这个字正好缓存在DRAM中。
    在这里插入图片描述

    2. 缺页

    DRAM缓存不命中称为缺页(page fault)。

    1. 缺页时的处理流程

    在这里插入图片描述

    1. 发现缺页

    如图9-6,虚拟地址VP3在页表中找到了对应的PTE,其有效位为0,推断出其未被缓存。并触发一个缺页异常

    2. 缺页处理程序

    1. 处理牺牲页
      缺页异常会调用内核中的缺页异常处理程序,该程序会选择一个牺牲页(其选择不在讨论范围),假设我们选择了VP4。如果VP4已经被修改过了,它将被复制回磁盘。内核会修改VP4对应的页表项,表明VP4已经不在缓存中。
    2. 替换缺页的页面
      在处理完牺牲页之后,内核会从磁盘中将VP3对应的内容复制到物理页中。并更新PTE3。随后返回。

    3. 再次执行引起缺页的命令

    由于此时VP3的PTE已经更新,所以可以顺利进行地址翻译,读取想要读取的信息。

    按需页面调度
    页从磁盘换入(或者页面调入)DRAM和从DRAM换出(或者页面调出) 磁盘。一直等待,直到最后时刻,也就是当有不命中发生时,才换入页面。所有现代系统都使用的是按需页面调度的方式。

    5、分配页面

    当操作系统分配一个新的虚拟内存页时对我们示例页表的影响,例如,调用malloc的结果。在
    这个示例中,VP5的分配过程是在盘上创建空间并更新PTE 5,使它指向磁盘上这个新创建的页面。
    注意只有当使用到这部分内容的时候,这个磁盘中的页面才会调入内存中。
    在这里插入图片描述
    尽管在整个运行过程中程序引用的不同页面的总数可能超出物理内存总的大小,但是局部
    性原则保证了在任意时刻,程序将趋向于在一个较小的活动页面(active page)集合上工作,这个
    集合叫做工作集(working set)或者常驻集合(resident set)。在初始开销,也就是将工作集页面调
    度到内存中之后,接下来对这个工作集的引用将导致命中,而不会产生额外的磁盘流截。如果工作集的大小超出了物理内存的大小,那么程序将产生一种不幸的状态,叫做抖动(thrashing),这时页面将不断地换进换出。

    展开全文
  • 内存磁盘的亲密关系 1.前提 ...磁盘缓存指把磁盘中的数据读出并存储在内存中。这样下次再要读取相同的数据只需到磁盘缓存中读取,提升了磁盘数据的访问速度。 windows操作系统中就提供了磁盘缓存

    内存和磁盘的亲密关系

    1.前提

    内存与磁盘都是存储部件,内存利用电流来存储、磁盘利用磁效应来存储。内存高速高价,磁盘低速廉价。

    存储在磁盘中的程序必须先加载到内存中才能运行。这是因为cpu需要程序计数器指定内存地址,然后才能读出程序来运行。即使可以从磁盘中读取,程序的运行速度还是会降低。
    在这里插入图片描述

    2.磁盘缓存

    磁盘缓存指把磁盘中的数据读出并存储在内存中,这样下次再要读取相同的数据时,只需到磁盘缓存中读取,提升了磁盘数据的访问速度。
    在这里插入图片描述

    windows操作系统中就提供了磁盘缓存机制,但随着硬盘访问速度的提高,磁盘缓存效果也没之前明显。

    但把低速设备的数据保存在高速设备中,需要时直接从高速设备读取,这种缓存机制在其他情况下也会用到;比如cache高速缓冲存储器、标准I/O的缓冲区等。

    3.虚拟内存

    虚拟内存指把磁盘的一部分当做假想的内存来使用。借助虚拟内存,在内存不足时也可以运行程序;

    cpu只能运行加载到内存中的程序,所以为了实现虚拟内存,就必须将实际内存的内容和磁盘上虚拟内存的内容进行置换。就相当于流水线,一边运行一边从磁盘向内存加载程序。

    windows操作系统中就提供了虚拟内存机制。虚拟内存方法有分页式和分段式,而windows使用的是分页式。指不考虑程序构造,将程序按一定大小的页(page)进行分割,并以页为单位与磁盘置换; windows计算机一般的页大小是4KB。

    • page in : 磁盘到内存
    • page out : 内存到磁盘

    windows在磁盘上提供了虚拟内存用的文件( page file),文件大小就是虚拟内存大小,一般为实际内存的一倍到两倍。

    4.节约内存的编程方法

    虚拟内存虽然可以一定程度解决内存不足的情況,但 page in和 page out也会让运行程序变慢;要想从根本上解决内存不足问題,要不增加内存容量,要不尽量将运行文件变小;

    1)通过DLL文件实现函数共有

    多个应用共有一个DLL文件,这样就可以节约内存。 windows其实也是多个DLL文件的集合体。
    在这里插入图片描述

    2)调用_ stdcall来减小程序文件大小

    c语言中,在调用函数后,会执行栈清理处理指令,将不需要的数据从函数传参时用到的栈区中清理出去。

    该命令是编译器自动加到程序中的,默认加到函数调用方。比如在main函数中调用其它函数,就会加到main函数方。但是,如果main函数中调了同一个函数多次,就会处理多次,造成内存浪费。

    在函数前加_ stdcall,可以把栈处理变成在被调函数一方进行。
    在这里插入图片描述

    5.磁盘的物理结构

    磁盘将物理表面划分成多个空间来使用,有扇区方式和可变长方式,一般windows计算机的硬盘和软盘都是扇区方式。
    在这里插入图片描述

    扇区是对磁盘进行物理读写的最小单位,windows中1个扇区是512字节。不过在软件方面对磁盘读写的单位是簇,簇是扇区的整数倍。不同文件不能存在同一簇中,所以一个文件就算再小也占一个簇,没被填满的区域会保持不被使用的状态。

    6.说明

    本文为《程序是怎样跑起来的》读书笔记,如有错误,请兄弟们指正,大家一起进步!

    展开全文
  • CPU缓存的容量比内存小的多但是...缓存大小是CPU的重要指标之一,而且缓存的结构和大小对CPU速度的影响非常大,CPU内缓存的运行频率极高,一般是和处理器同频运作,工作效率远远大于系统内存硬盘。实际工作时,...
  • 说到缓存,大家肯定都很熟悉,但是一问什么是缓存,或者问缓存是不是放在内存里,还有虚拟内存是把用得着的程序缓存内存,用不着的程序放在磁盘吗?,大家可能多少会蒙一下下,那么今天就来看看什么是缓存。 局部...
  • 内存虚拟磁盘缓存工具 虚拟磁盘缓存后大大提升硬盘性能 加快存取速度
  • 虚拟内存缓存 高速缓存存储器 (Cache Memory) In memory hierarchy, there is an additional level of memory which is Cache. It is high-speed storage and much faster than the main storage. It is much ...
  • 问题是什么,你才能找答案: 程序放入内存,形成进程,分配段,形成段表,分配页,形成页表。(思考问题:1.磁盘在整个过程起到什么...在分页:虚拟内存的每个段映射到物理内存的页框(建页表)。 使用内存。 ...
  • 内存缓存 高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM...
  • 支持内存缓存、硬盘缓存 支持网络图片加载 使用 在Project 级别的build.gradle 文件中引入以下配置: allprojects { repositories { ... maven { url 'https://jitpack.io' } } } 在你项目的module级别...
  • 存储磁盘将一部分硬盘用作硬盘。...Primo Ramdisk设置虚拟内存磁盘的应用范围:1、打开BT时,直接下载到虚拟内存硬盘! (不伤物理硬盘)2、将Windows的临时文件夹存储在虚拟内存硬盘中! (加快文件读取...
  • 1、硬盘:用来存储数据...2、内存:由于硬盘速度比较慢,CPU如果运行程序的时候,所有数据都直接从硬盘中读写,会非常影响效率。所以CPU会将运行软件时要用的数据一次性从硬盘调用到运行速度很快的内存,然后再CPU再...
  • PrimoCache是一款可以将物理内存、SSD硬盘或闪存盘等虚拟成硬盘缓存的软件。它可以自动将硬盘中读取的数据存入物理内存等速度较快的设备,当系统再次需要该数据时它可以很快从缓存设备中读取,而无需再次访问速度较...
  • 内外存储器与缓存内存虚拟内存2007年上海和雍零售业务群人力资源部工作内容 2007年上海和雍零售业务群人力资源部工作内容 * 笔记本电脑知识 ----缓存 内存篇 2007年上海和雍零售业务群人力资源部工作内容 * 存储器 ...
  • 虚拟内存与页面缓存

    2019-07-18 00:01:38
    操作系统会一次性读出磁盘上的内容,类似的虚拟内存机制给进程分配内存的时候也不是一个字节一个字节地访问,而是分配好适当的大小(4kb左右)并传递给进程。这样的一个内存块称为“页面”。进程要求...
  • 有一说一:虚拟内存对比固态硬盘

    千次阅读 2021-08-06 05:41:15
    02有一说一:虚拟内存对比固态硬盘虚拟内存对比固态硬盘的话题并不可笑,因为推广前者的同时并没有太多的说明来让其与其他存储介质区分开。RAM的寿命、速度都是虚拟硬盘的优点,但往往优点太多了容易从基础概念造成...
  • KVM虚拟化之磁盘磁盘缓存模式

    千次阅读 2020-08-07 12:16:52
    并不一定要给虚拟机创建虚拟磁盘文件。我们可以通过逻辑映射,将SAN的块设备指定给虚拟机使用。这里我们暂讨论宿主机模拟磁盘的场景。 如上图,缓存模式作用在虚拟化层和宿主机文件系统或块设备之间。 性能:...
  • Ubuntu内存虚拟硬盘——tmpfs

    千次阅读 2020-09-18 16:22:59
    因此使用内存构造一个虚拟硬盘,即保护了固态硬盘又提升了读写速度。 2.tmpfs简介 在Linux系统中,tmpfs是一种虚拟内存文件系统,存储空间位于VM(Virtual Memory)之中。VM由RM(Real Memory)和swap构成。RM是...
  • 内存缓存虚拟内存的区别

    千次阅读 2018-12-05 20:27:29
    其中对内存的管理是系统的最主要的职责,怎么样使有限的内存用在刀刃上,怎么要保证系统本身所需的内存(以防止死机,在win2000和winxp里这一点已经做的非常好了  缓存是CPU的一部分,它存在于CPU中  CPU存取数据...
  • 我们组的台式机的内存一般都是预装的16G内存,两个8G的条子,后来部分机器由于内存条的问题频繁蓝屏死机,就拔了一根内存条出来,只剩8G,但是只要你是怀着一份平常心,没有报复社会的心态去使用你的电脑的话,按时...
  • 最近在学习虚拟内存,每天学一点点整理一点点,内容可能有点多,可以收藏慢慢看。 文章目录 1. 存储器;2. DRAM寻址;3. cache缓存;4. 虚拟地址VM;5. 综合栗子
  • 磁盘缓存内存缓存的区别

    千次阅读 2017-07-13 12:45:17
    内存缓存 高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的...
  • PAGE 2 数据结构作业 操作系统作业 PAGE 1 操作系统虚拟存储器与磁盘缓存 问题描述 虚拟存储器技术牺牲了内存访问速度换取了可用内存容量的增加磁盘高速缓存内存容量的牺牲换取了I/O性能的提升一个以时间换空间一...
  • 如果电脑有大内存,可以使用RAMDisk 分出一块缓存盘之后,将浏览器缓存更改至虚拟硬盘,那么如何有效的将缓存文件更改至缓存盘呢? 网上普遍有两种方法: 1、mlink 创建连接,但是实际虚拟磁盘的文件夹路径可能...
  • PrimoCache是一款可以将物理内存、SSD硬盘或闪存盘等虚拟成硬盘缓存的软件。它可以自动将硬盘中读取的数据存入物理内存等速度较快的设备,当系统再次需要该数据时它可以很快从缓存设备中读取,而无需再次访问速度较...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 116,567
精华内容 46,626
关键字:

内存虚拟成磁盘缓存

友情链接: vp9_ratectrl.rar