`

缓存、内存、虚拟内存分析

阅读更多
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo4

许多人认为,“缓存”是内存的一部分,许多技术文章都是这样教授的,事实上这么说是不正确的。

其实,缓存是CPU的一部分,它存在于CPU中

CPU存取数据的速度非常的快,一秒钟能够存取、处理十亿条指令和数据(术语:CPU主频1G),而内存就慢很多,快的内存能够达到几十兆就不错了,可见两者的速度差异是多么的大

缓存是为了解决CPU速度和内存速度的速度差异问题

内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多

这里要特别指出的是:
1.因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速度就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。

2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的

3.关于一级缓存和二级缓存
为了分清这两个概念,我们先了解一下RAM(随即访问存储器)

ram和ROM(只读存储器)相对的,RAM是掉电以后,其中才信息就消失那一种,ROM在掉电以后信息也不会消失那一种

RAM又分两种,

一种是静态RAM,SRAM;一种是动态RAM,DRAM。前者的存储速度要比后者快得多,我们现在使用的内存一般都是动态RAM。

有的人就说了,为了增加系统的速度,把缓存扩大不就行了吗,扩大的越大,缓存的数据越多,系统不就越快了吗

缓存通常都是静态RAM,速度是非常的快,

但是静态RAM集成度低(存储相同的数据,静态RAM的体积是动态RAM的6倍),

价格高(同容量的静态RAM是动态RAM的四倍),

由此可见,扩大静态RAM作为缓存是一个非常愚蠢的行为,

但是为了提高系统的性能和速度,我们必须要扩大缓存,

这样就有了一个折中的方法,不扩大原来的静态RAM缓存,而是增加一些高速动态RAM做为缓存,

这些高速动态RAM速度要比常规动态RAM快,但比原来的静态RAM缓存慢,

我们把原来的静态ram缓存叫一级缓存,而把后来增加的动态RAM叫二级缓存。

一级缓存和二级缓存中的内容都是内存中访问频率高的数据的复制品(映射),它们的存在都是为了减少高速CPU对慢速内存的访问。
通常CPU找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了

   什么叫虚拟内存,它与缓存有什么异同呢 虚拟内存是WINDOWS操作系统用来管理内存的一种方法,虚拟内存说穿了就是把内存中的信息分出去一部分存在硬盘上,这样从表面上看就扩大了内存容量(难怪内存中存了这么多东西,原来有一部分被转到了硬盘上),我们知道内存中存有很多数据和指令,但是这些数据和指令被访问的频率是不同的,有些要被经常访问,有些却被CPU冷落WINDOWS 是个落井下石的坏东西,它大声的说:既然你们被CPU冷落了,干脆把你们打入冷宫吧。于是这些被访问频率低或者不被访问的数据从内存中被赶到了硬盘上。但WINDOWS并非铁石心肠,它还说:如果CPU需要访问你们时,我就把你们送入内存,如果你们更加热门的时候,就可能被CPU带入缓存,如果你们被重新冷落时,我就会无情的把你们再打入冷宫。   而那个冷宫就是硬盘上的虚拟内存。如果你刚才还不知道什么是虚拟内存是什么东西时,那么现在呢?   我还看到有些网友问:虚拟内存和缓存有什么区别呢,它们的原理都是局部时间内被访问的内存地址具有局部性。 
    现在我们来看看它们的区别:
    1.缓存是一种硬件,是CPU的一部分;而虚拟内存并不是一种硬件,而是存在于硬盘上的一个文件,是根据WINDOWS的要求生成的(二者中的信息都是随时变化的) 
    2.缓存的目的是加快系统的速度,而虚拟内存技术是为了使更多的程序能够在有限的内存中运行。
分享到:
评论

相关推荐

    内存虚拟硬盘缓存

    内存虚拟硬盘缓存的操作方法和软件。加快系统运行速度。

    Microsoft edge 浏览器缓存改成内存虚拟盘(盘符R)

    Microsoft edge 浏览器缓存改成内存虚拟盘(盘符R) Microsoft edge 浏览器缓存改成内存虚拟盘(盘符R) Microsoft edge 浏览器缓存改成内存虚拟盘(盘符R)

    内存虚拟磁盘缓存PrimoCacheCHN集成通杀破解补丁

    内存虚拟磁盘缓存工具 虚拟磁盘缓存后大大提升硬盘性能 加快存取速度

    FancyCache 将系统内存或闪存虚拟成硬盘缓存的软件

    FancyCache是一个可以将系统内存或闪存虚拟成硬盘缓存的软件。它把从硬盘中读取的数据存入系统内存或闪存,使系统在下次访问该数据时可以很快从内存读取,避免再次读取速度较慢的硬盘,从而突破硬盘瓶颈,提升系统...

    著名android手机[图片缓存虚拟内存等应用实例]

    对手机本地图片或网络图片,进行缓存.虚拟内存等存取实例代码忆调试通过.

    内存虚拟硬盘软件ramdisk 汉化版

    内存虚拟硬盘软件ramdisk 汉化版 这个软件,是把内存虚拟成硬盘的工具。你可以把多余的内存虚拟成硬盘,把你的IE缓存,BT缓存,RAR解压缓存放在这个盘上,减少硬盘的读取次数。 该软件使用方便,安全,卫生!!

    驱动级内存虚拟盘V5(基乎与操作系统同时加载无缓冲版)

    驱动级内存虚拟盘V5 内存虚拟盘专业版 超级缓存虚拟盘

    免费内存虚拟盘VSuite.Ramdisk1.18,超级兔子虚拟磁盘1.6

    内存虚拟硬盘 VSuite Ramdisk 提供对硬盘性能瓶颈问题的有效解决方案。它采用独特的软件算法,高效率地将内存虚拟成物理硬盘,使得对硬盘文件的数据读写转化为对内存的数据访问,极大的提高数据访问速度,从而突破...

    虚拟内存盘

    利用软件划物理内存做虚拟高速磁盘存系统缓存提高系统效率

    最新版 虚拟内存盘 RamDisk(内含注册文件)

    虚拟内存盘 RamDisk 能够把多余的内存虚拟成一个磁盘来使用,虚拟内存盘的读写速度是固态硬盘的几百倍 虚拟磁盘用来存放系统缓存或者浏览器缓存,让系统和应用真正“飞快”地运行起来。注册方法很简单:32位系统,请...

    eclipse虚拟缓存处理

    eclipse无法打开,设置虚拟缓存

    内存虚拟硬盘 ramdisk

    可以将你的大内存虚拟成 硬盘,可以将你的缓存转移到上面,提高运行速度

    RamDisk 虚拟内存软件

    虚拟内存软件 内存也玩虚拟 纯绿色免安装 不言而喻虚拟内存的好处 系统缓存 临时文件运行速度大幅提升

    ramdisk5内存虚拟成硬盘或其他

    有多余的内存可以适当使用200多兆,用这些虚拟成硬盘,然后把电脑上的临时文件,缓存神马的移到那,关机自动清理。而且改虚拟硬盘的速度就是你内存的速度。秒杀硬盘速度

    疯狂内核之——Linux虚拟内存

    2.5.4 高速缓存内存布局 94 2.5.5 slab着色 95 2.5.6 分配slab对象 96 2.5.7 释放Slab对象 100 2.5.8 通用对象 102 2.5.9 内存池 103 2.6 非连续内存区 104 2.6.1 高端内存区回顾 105 2.6.2 非连续内存区的描述符 ...

    Ramdisk,将内存化成虚拟硬盘分区

    Ramdisk,将内存化成虚拟硬盘分区,临时文件,缓存等可放在此虚拟硬盘分区里,实际上是放在了内存里,读写速度极快,减少物理硬盘读写,延长磁盘寿命,文件如需保存,可将其拷贝到物理硬盘,可根据不同需求设置虚拟...

    C语言内存讲解

    C语言内存与指针的综合使用,配合C语言进行综合讲解指针内存

    解决SQL Server虚拟内存不足情况

    解决SQL Server虚拟内存不足情况 症状 在具有 2 GB 或更多 RAM 的计算机上,除了 256 MB (SQL Server 7.0) 或 384 MB (SQL Server 2000) 虚拟地址空间之外,SQL Server 在启动过程中保留剩下的...

    几何倍提高系统运行速度,内存虚拟硬盘(免费)

    现在电脑内存便宜,大多数内存已经超过2G以上。一些使用32位系统的朋友,超过3.25G...这个软件可以利用这些闲余的内存资源,把它虚拟为电脑硬盘,用于存储系统运行的缓存文件,读取速度可以提高数倍以上。 马上试试吧!

    内存管理内存管理内存管理

    如您所见,brk() 或者 mmap() 都可以用来向我们的进程添加额外的虚拟内存。在我们的例子中将使用 brk(),因为它更简单,更通用。 实现一个简单的分配程序 如果您曾经编写过很多 C 程序,那么您可能曾多次使用过 ...

Global site tag (gtag.js) - Google Analytics