详见:
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)
内存虚拟硬盘缓存的操作方法和软件。加快系统运行速度。
通过分析这些源码,开发者可以深入理解内存虚拟硬盘的工作机制,并可能对其进行定制和改进,以满足特定应用场景的需求。 总的来说,内存虚拟硬盘C++源码是一个技术含量较高的项目,涉及了操作系统原理、内存管理、...
本文将深入探讨如何在Android中实现图片缓存、虚拟内存管理和实际应用案例,以提升用户体验。 首先,我们需要理解图片缓存的重要性。在Android应用中,频繁地从网络加载图片会导致数据流量浪费和性能降低,甚至可能...
2. **性能提升**:内存虚拟硬盘适合存放临时文件、缓存、或者频繁读写的数据,可以显著提高数据访问速度。 3. **数据安全**:由于数据存储在内存中,断电或重启后数据会丢失,因此不适合存放重要或需长期保存的信息...
- 缓存优化:对于频繁读取的文件,内存虚拟硬盘能提供更优秀的缓存效果。 - 临时存储:对于临时文件或下载的文件,内存虚拟硬盘可以提供快速的存储空间,断电后数据丢失,避免占用实际硬盘空间。 3. 应用场景: - ...
由于内存的读写速度非常快,因此使用内存虚拟硬盘可以显著提升某些需要频繁读写操作的应用程序的性能,如临时文件、缓存、编译过程等。 然而,内存虚拟硬盘也有其局限性。首先,由于内存资源有限且价格相对较高,不...
内存虚拟磁盘缓存工具 虚拟磁盘缓存后大大提升硬盘性能 加快存取速度
内存虚拟盘,也称为RAMDISK,是一种技术,它利用计算机的随机访问内存(RAM)作为硬盘驱动器的替代品。这种技术将一部分系统内存划分为一个独立的存储区域,模拟为一个磁盘驱动器,使得数据读写速度显著提高,因为...
内存虚拟硬盘软件是一种高效利用计算机内存的技术,它允许用户在内存中创建一个临时的硬盘分区,称为“虚拟硬盘”,以提高数据读写速度。这种方式利用了内存的高速特性,使得频繁访问的数据能更快地被处理,尤其对于...
- **缓存加速**:可以将临时文件、网页缓存等设置在内存虚拟硬盘上,提高浏览器和其他应用的响应速度。 3. **适用场景**: - **系统性能优化**:对于需要高性能计算的环境,如服务器、图形渲染或数据库应用,内存...
内存虚拟硬盘技术是一种创新的数据存储解决方案,它利用计算机的RAM(随机存取内存)作为临时存储介质,模拟出一个高速的硬盘驱动器。VSuite Ramdisk SE 4.5.7219.1638是专为服务器设计的一款高效软件,其核心功能...
FancyCache是一个可以将系统内存或闪存虚拟成硬盘缓存的软件。它把从硬盘中读取的数据存入系统内存或闪存,使系统在下次访问该数据时可以很快从内存读取,避免再次读取速度较慢的硬盘,从而突破硬盘瓶颈,提升系统...
6. 性能优化:为了最大化内存虚拟硬盘的性能,开发者需要关注缓存策略、内存预读和数据对齐等技术,以减少内存访问的开销。 总的来说,实现内存虚拟硬盘涉及的知识点广泛,包括操作系统原理、C语言编程、设备驱动...
Linux虚拟内存的实现需要6种机制的支持:地址映射机制、内存分配回收机制、缓存和刷新机制、请求页机制、交换机制和内存共享机制。 在Linux中,虚拟内存管理是通过地址映射机制把用户程序的逻辑地址映射到物理地址...