缓存有什么好处
㈠ 11.33数据缓存的好处是什么,如何实现数据缓存
数据库缓存的作用是只在数据第一次被访问时才从数据库中读取数据,将数据放在存储介质中,以后查询相同的数据则直接从存储介质(内存)中返回,这样速度有明显的提升。
为了更好的使用数据缓存,应注意以下几点:
1、如果一个实体标记了缓存属性,则无论该类是 通过ID查询还是其它方式的查询得到的结果,都会自动缓存。 所以,不必担心结果是否能够按照预期的需要缓存。
2、查询缓存如何使用? 在CastleActiveRecord中的查询类没有提供对查询缓存的支持,只能使用NHibernate的查询才可以,例子如上所述。
3、缓存的性能,缓存在一定程度上可以提高应用的性能,但需要正确使用,如果使用不慎,缓存反而成为负担,比如,在应用中如果使用NHibernate.Caches.Prevalence 作为缓存提供程序,如果数据量大,它要在指定目录下写入缓存文件,IO消耗相当大,虽然数据库访问少了,但是应用的IO却增长,还不如不使用缓存。因此,使用缓存时应尽量避免使用文件型缓存,应使用内存型缓存。
4、缓存的策略。查询缓存应只对只读性数据进行缓存,如果是经常读写的数据,可能造成数据不一致,至于造成数据不一致的原因没有花时间根究。
5、如果实体有继承关系,必须在被继承的类上也标记使用 缓存,否则,子类的缓存无效。
6、如果对查询进行缓存,必须实体也要标记缓存,否则查询缓存无效。
㈡ 缓存的作用是什么
缓存是为了解决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找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了
㈢ 电脑缓存大有什么好处
缓存(Cache
memory)是硬盘控制器上的一块内存芯片,具有极快的存取速度,它是硬盘内迟祥部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界接口传输速度不同,缓存在其中起到一个缓冲的作用。缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之码陵搏间交换数据,有大缓存,则可汪陵以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。
㈣ 固态硬盘的缓存有什么作用
预先把要处理的数据写入到缓存里面,从而提高硬盘的效率
从反应速度这一方面来说,固态硬盘的反应速度一般都在0.2毫秒以内,不比缓存慢。所以固态硬盘带缓存对读取速度的提升,几乎可以忽略。
把数据从内存写入硬盘,由于硬盘较缓慢,需要等待较长的时间才能完成此任务。为了解决硬盘速度过慢的问题,就在其内部安置了一个小容量的内存,也就是硬盘的缓存,数据首先写入到缓存里。
那么在操作系统层面,就会认为数据已经写入了,用户的感觉就是快速。随后硬盘自己再从缓存写入到盘片,这个过程无需用户干预了。
(4)缓存有什么好处扩展阅读:
带不带缓存并不影响固态硬盘的寿命,决定固态硬盘寿命的是NAND FLASH的写入次数。其次,主控芯片的好坏也是决定固态硬盘性能和使用寿命的重要因素。
缓存的主要功能在于是电脑有资料放到机械硬盘时,因为机械硬盘机械式运作比电脑慢很多,所以在机械硬盘上放上缓存,暂时存储资料以便电脑能够继续做其他事情,不会因为机械硬盘的动作慢,而拖慢了电脑的效能。
而固态硬盘的速度大幅提升,已经能够实时处理数据,缓存作为提升速度的作用就不大了。
参考资料来源:网络-高速缓冲存储器
㈤ 缓存的功能作用
硬盘的缓存主要起三种作用: 有时候,某些数据是会经常需要访问的,像硬盘内部的缓存(暂存器的一种)会将读取比较频繁的一些数据存储在缓存中,再次读取时就可以直接从缓存中直接传输。缓存就像是一台计算机的内存一样,在硬盘读写数据时,负责数据的存储、寄放等功能。这样一来,不仅可以大大减少数据读写的时间以提高硬盘的使用效率。同时利用缓存还可以让硬盘减少频繁的读写,让硬盘更加安静,更加省电。更大的硬盘缓存,你将读取游戏时更快,拷贝文件时候更快,在系统启动中更为领先。
缓存容量的大小不同品牌、不同型号的产品各不相同,早期的硬盘缓存基本都很小,只有几百KB,已无法满足用户的需求。16MB和32MB缓存是现今主流硬盘所采用,而在服务器或特殊应用领域中还有缓存容量更大的产品,甚至达到了64MB、128MB等。大容量的缓存虽然可以在硬盘进行读写工作状态下,让更多的数据存储在缓存中,以提高硬盘的访问速率,但并不意味着缓存越大就越出众。缓存的应用存在一个算法的问题,即便缓存容量很大,而没有一个高效率的算法,那将导致应用中缓存数据的命中率偏低,无法有效发挥出大容量缓存的优势。算法是和缓存容量相辅相成,大容量的缓存需要更为有效率的算法,否则性能会大大折扣,从技术角度上说,高容量缓存的算法是直接影响到硬盘性能发挥的重要因素。更大容量缓存是未来硬盘发展的必然趋势。
㈥ 系统缓存是什么来的有何作用
分类: 电脑/网络 >> 操作系统/系统故障
解析:
理解缓存
操作系统的任务主要是合理地调配系统的各种资源,为各种程序的运行提供环境,它可以看作是硬件和应用软件之间的一个媒介。其中对内存的管理是系统的最主要的职责,怎么样使有限的内存用在刀刃上,怎么要保证系统本身所需的内存(以防止死机,在win2000和winxp里这一点已经做的非常好了),怎样克服各种硬件连接的瓶颈。
本文主要就这种硬件连接的瓶颈问题展开一些讨论。大家知道计算机的主要硬件,硬盘,内存和处理器之间的速度是不一样的,其中处理器的速度是非常快的,内存次之,而硬盘的速度是很慢的(相对于处理器来说),一件任务的处理要通过处理器给出的指令,把相关数据从硬盘里调出来,到内存,在内存和处理器之间还会有许多数据的传输,内存本身不能处理数据,要通过处理器来处理,当他们一起工作的时候,由于处理器和内存工作得快,它们常在把事做完了没事做了,要等硬盘,这样就大大降低了系统的整体性能,不能发挥所有硬件的性能。为了解决这个问题,一个优秀的操作系统必然要有“缓存”来作为这些硬件之间的一个中间站,来缓和这种矛盾,从而一定程度上提高系统的性能,“缓存”处理的越好,系统的性能发挥的越好。所以研究“缓存”就有了它的意义。
看了上面的内容,以前对“缓存”没有认识的朋友应该理解它了。理解之后马上可以应用的地方就是在自购兼容机的时候。大家大可不必去追赶潮流,买什么P4处理器,而应该买一个快一点的硬盘,比如买个7200转的(或更快的),以减少瓶颈的矛盾。处理器吗,买赛扬好了,一般是没问题的,处理器大多数时候是闲着的,有时处理很多个大任务时可能会有些紧张,注意避免就可以了。
从某种角度讲,内存本身是硬盘和处理器之间的一个缓存,它的作用是缓解硬盘和处理器之间的尖锐矛盾的。当它被作为一个固定的部件后,它本身也成了需要用缓存来缓解瓶颈的对象。它对处理器和硬盘夹在中间,是他们的必经之路,硬盘与处理器之间的关系成了硬盘与内存和内存与处理器之间的双重关系。所以上面提到的瓶颈问题的处理归结为对内存的优化,即怎样处理好硬盘与内存之间的缓存很处理器与内存之间的缓存。
对于一个想了解操作系统的人来说,能够理解“缓存”对对它做适当的优化是比不可少的一节课。另外再不从一下,缓存的概念是很广泛的,这里专指内存的缓存。
缓存的优化
操作系统本身已经有了很多优化措施,而我们只能在它的优化措施的基础上根据我们的实际情况来优化。
1,最“着名”的缓存是页面文件,这个倒不是缓解速度的,而是缓解容量的,在速度上,硬盘不如内存,但是容量上,内存是不可能跟硬盘比的,当你运行一个程序需要大量数据,占有大量内存时,内存就要被塞满,怎么办呢?把那些暂时不用的放到硬盘里去,因为处理器总是只调用处理一个任务所需的数据,其他的准备的数据(就是那些可能要用的,但暂时还不用的)可以先放一放,如果内存放不下,就只好放到硬盘了。但是这样做是有代价的,当放到内存的数据重新要被使用时,你就得等很长时间等系统把在硬盘中得数据调上来。其实你可以感受到系统的这些动作,比如你打开IE或Office,第一次打开是很慢的,但是关闭后马上再打开就快很多,这是因为这时数据还没被系统“请”出内存,系统从内存中直接取得数据自然快了;另一个情况,当你开了一个photoshop这样的大软件,这时打开Office要比平时还慢一点,这是因为内存本来被photoshop占领着,要调入Office的数据到内存就必须把photoshop的数据“请”出内存,多了这个过程,打开自然要慢一些。
优化页面文件,可以做一下几条:
1)把页面文件放到系统盘之外,这样做主要是为了保持页面文件的连续性,硬盘读取数据是靠磁头在磁性物质上“读”得到数据的,页面文件放在物理上的不同区域,磁头就要跳来跳去,自然不利于效率。系统盘文件众多,页面文件几乎肯定不连续。所以要把它移到其他盘。要提醒一点,当你移动好页面文件后,要把原来的删除掉,系统不会自动删除。
2)如果有两个硬盘,把页面文件放在转速快的那个,原因上面已讲了很多遍了。
3)最大最小页面文件的设置原则。有很多人建议将这两个值设置成相等的,我不知道他们是那里来的依据,其实这样设置是不合理的。我们先要知道他们两个值的意义。一般情况下,内存是不会真的“塞满”,它会在内存储量到达一定程度时自动将一部分暂时不用的数据放到硬盘,最小页面文件是所说的“一定程度”的具体比例的决定因素,最小页面文件大,比例就低,反之则相反;最大页面文件是极限值,有时你开了很多程序,内存和最小页面文件都满了,就自动溢出到最大页面文件。所以,将两者设为一样大是不合理的。最小页面文件要小一些,这样能够在内存中尽可能存更多的数据,效率就高,最大页面文件大一些,以免出现“全满”的的情况。
4)winxp现在支持4G内存,哪怕你有5,6百M的内存,你都不需页面文件了,这时可以把页面文件禁掉。到注册表编辑器HKEY_LOCAL_MACHINE\System\CurrentControlSet\ControlSession Manager \Memory Management下,找到DisablePagingExecutive(禁用页面文件)设其值为1。
5)在同上的注册表编辑器位置上有个ClearPageFileAtShutdown(关机时清除页面文件),这里所说的“清除”页面文件(即虚拟内存)并非是指从硬盘上完全删除pagefile .sys这个文件,而是对其进行“清洗”和整理,从而为下次启动Win2K更好地利用虚拟内存作好准备。这样做还有利于安全,页面文件上的残留的数据是可以用特殊的工具读到的,而这些数据你可能并不想让人知道。这样做的代价是关闭系统时间会加长。 将其值设为1即可。
6)学过C的朋友们应该对操作内存有个概念,一个任务完成后,要用free函数来释放内存,但有很多软件在设计的时候,并没有在所有环节都这样做,这会造成无用的数据占据内存,对这种情况可以使用一些内存优化软件,让这钟软件来完成释放内存的动作。
2,下面介绍和优化一些不着名的缓存:
1)内存读取硬盘数据要经过一个系统缓存(system cache),它的位置是在内存的特定区域,它是用来缓解硬盘与内存之间的速度不平衡的。它是以牺牲内存资源来换取从硬盘读取数据时的速度的,有了这块缓存,系统能从硬盘预读所需的数据,减少系统等待的时间。如果你的内存很大,比如5,6百M,那么你除了可以采取上面说的关闭页面文件的方法外,还可以起用打的系统缓存。做法如下,进入注册表编辑器: HKEY_LOCAL_MACHINE\System\CurrentControlSet\ControlSession Manager \Memory Management,找到LargeSystemCache(启用大的系统缓存),将它的值设为1就可以了。
这样设置了后,systemcache从4M增加到8M,再win2000和winxp中,这个值是动态的,如果内存不足,systemcache占据的空间可以自动相应调整。
2)处理器从内存读取数据的缓存是什么呢?是二级数据高级缓存(缓冲),同样它也要在内存中占一个空间,所以最好是有了大内存之后再设置这个值。也需再注册表里设置,方法如下:进入 HKEY_LOCAL_MACHINE\System\CurrentControlSet\ControlSession Manager \Memory Management ,找到 SecondLevelDataCache,默认为256,大内存设为512。
好了经过了上面的介绍,我想对朋友们来说最重要收获的是加深了对缓存和操作系统的认识,至于优化的方法,我得承认一般的朋友是用不着去做的,当然“玩”一下也是很有意思的。
㈦ 笔记本电脑缓存的作用是什么
笔记本硬盘的缓存主要有哦三个作用。
一是预读取;
二是对写入动作进行缓存;
第三就是临时存储最近访问过的数据简单的说,硬盘的缓存是越大越好,因为硬盘也会出现存取速度不匹配的问题,缓存就是解决这个问题的。
有现象内存的作用,匹配CPU和其他硬件间的存取速度问题。笔记本硬盘的缓存最常见的有8M和16M,最大的有32M的。当然,缓存越大价格也越高。
缓存(Cache memory)是硬盘控制器上的一块内拿亩困存芯片,具有极快的存取速度,它是硬盘内部存储和外界接口之间的缓冲器。由于硬盘的内部数据传输速度和外界接口传输速度不同,缓存在其中起到一个缓冲的作用。
缓存的大小与速度是直接关系到硬盘的传输速度的重要因素,能够大幅度地提高硬盘整体性能。当硬盘存取零碎数据时需要不断地在硬盘与内存之间交换数据,如果有大缓存,则可以将那些零碎数据暂存在缓存中,减小外系统的负荷,也提高了数据的传输速度。
㈧ 什么是"缓存"它有什么作用的呢
缓存简介
CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。
缓存是为了解决CPU速度和内存速度的速度差异问题。内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数据了,CPU只要到缓存中去取就行了,而缓存的速度要比内存快很多。
这里要特别指出的是:
1.因为缓存只是内存中少部分数据的复制品,所以CPU到缓存中寻找数据时,也会出现找不到的情况(因为这些数据没有从内存复制到缓存中去),这时CPU还是会到内存中去找数据,这样系统的速度就慢下来了,不过CPU会把这些数据复制到缓存中去,以便下一次不要再到内存中去取。
2.因为随着时间的变化,被访问得最频繁的数据不是一成不变的,也就是说,刚才还不频繁的数据,此时已经需要被频繁的访问,刚才还是最频繁的数据,现在又不频繁了,所以说缓存中的数据要经常按照一定的算法来更换,这样才能保证缓存中的数据是被访问最频繁的。
缓存的工作原理
[编辑本段]
缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
一级缓存和二级缓存
[编辑本段]
为了分清这两个概念,我们先了解一下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找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了。
缓存的技术发展
[编辑本段]
最早先的CPU缓存是个整体的,而且容量很低,英特尔公司从Pentium时代开始把缓存进行了分类。当时集成在CPU内核中的缓存已不足以满足CPU的需求,而制造工艺上的限制又不能大幅度提高缓存的容量。因此出现了集成在与CPU同一块电路板上或主板上的缓存,此时就把 CPU内核集成的缓存称为一级缓存,而外部的称为二级缓存。一级缓存中还分数据缓存(Data Cache,D-Cache)和指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据和执行这些数据的指令,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。英特尔公司在推出Pentium 4处理器时,用新增的一种一级追踪缓存替代指令缓存,容量为12KμOps,表示能存储12K条微指令。
随着CPU制造工艺的发展,二级缓存也能轻易的集成在CPU内核中,容量也在逐年提升。现在再用集成在CPU内部与否来定义一、二级缓存,已不确切。而且随着二级缓存被集成入CPU内核中,以往二级缓存与CPU大差距分频的情况也被改变,此时其以相同于主频的速度工作,可以为CPU提供更高的传输速度。
二级缓存是CPU性能表现的关键之一,在CPU核心不变化的情况下,增加二级缓存容量能使性能大幅度提高。而同一核心的CPU高低端之分往往也是在二级缓存上有差异,由此可见二级缓存对于CPU的重要性。
CPU在缓存中找到有用的数据被称为命中,当缓存中没有CPU所需的数据时(这时称为未命中),CPU才访问内存。从理论上讲,在一颗拥有二级缓存的CPU中,读取一级缓存的命中率为80%。也就是说CPU一级缓存中找到的有用数据占数据总量的80%,剩下的20%从二级缓存中读取。由于不能准确预测将要执行的数据,读取二级缓存的命中率也在80%左右(从二级缓存读到有用的数据占总数据的16%)。那么还有的数据就不得不从内存调用,但这已经是一个相当小的比例了。目前的较高端的CPU中,还会带有三级缓存,它是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。
为了保证CPU访问时有较高的命中率,缓存中的内容应该按一定的算法替换。一种较常用的算法是“最近最少使用算法”(LRU算法),它是将最近一段时间内最少被访问过的行淘汰出局。因此需要为每行设置一个计数器,LRU算法是把命中行的计数器清零,其他各行计数器加1。当需要替换时淘汰行计数器计数值最大的数据行出局。这是一种高效、科学的算法,其计数器清零过程可以把一些频繁调用后再不需要的数据淘汰出缓存,提高缓存的利用率。
CPU产品中,一级缓存的容量基本在4KB到64KB之间,二级缓存的容量则分为128KB、256KB、512KB、1MB、2MB、4MB等。一级缓存容量各产品之间相差不大,而二级缓存容量则是提高CPU性能的关键。二级缓存容量的提升是由CPU制造工艺所决定的,容量增大必然导致CPU内部晶体管数的增加,要在有限的CPU面积上集成更大的缓存,对制造工艺的要求也就越高。
现在主流的CPU二级缓存都在2MB左右,其中英特尔公司07年相继推出了台式机用的4MB、6MB二级缓存的高性能CPU,不过价格也是相对比较高的,对于对配置要求不是太高的朋友,一般的2MB二级缓存的双核CPU基本也可以满足日常上网需要了。
㈨ 固态硬盘 DRAM缓存大有什么好处
固态硬盘具有独立的DRAM内存颗粒,主要好处是可以降低固态硬盘的读写延迟,提升固态硬盘的读写性能,延长闪存颗粒的读写寿命。
一般有独立DRAM缓存的固态硬盘会高端一些,也就是说性能更好寿命更久,而低端固态硬盘可能没有独立内存颗粒,而是共享系统内存作为缓存使用。