精华内容
下载资源
问答
  • 磁盘缓存和内存缓存区别
    万次阅读 多人点赞
    2015-08-23 22:49:50

    内存缓存

    高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。

    原理
    Cache一词来源于1967年的一篇电子工程期刊论文。其作者将法语词“cache”赋予“safekeeping storage”的涵义,用于电脑工程领域。

    当CPU处理数据时,它会先到Cache中去寻找,如果数据因之前的操作已经读取而被暂存其中,就不需要再从随机存取存储器(Main memory)中读取数据——由于CPU的运行速度一般比主内存的读取速度快,主存储器周期(访问主存储器所需要的时间)为数个时钟周期。因此若要访问主内存的话,就必须等待数个CPU周期从而造成浪费。

    提供“缓存”的目的是为了让数据访问的速度适应CPU的处理速度,其基于的原理是内存中“程序执行与数据访问的局域性行为”,即一定程序执行时间和空间内,被访问的代码集中于一部分。为了充分发挥缓存的作用,不仅依靠“暂存刚刚访问过的数据”,还要使用硬件实现的指令预测与数据预取技术——尽可能把将要使用的数据预先从内存中取到缓存里。

    CPU的缓存曾经是用在超级计算机上的一种高级技术,不过现今电脑上使用的的AMD或Intel微处理器都在芯片内部集成了大小不等的数据缓存和指令缓存,通称为L1缓存(L1 Cache即Level 1 On-die Cache,第一级片上高速缓冲存储器);而比L1更大容量的L2缓存曾经被放在CPU外部(主板或者CPU接口卡上),但是现在已经成为CPU内部的标准组件;更昂贵的CPU会配备比L2缓存还要大的L3缓存(level 3 On-die Cache第三级高速缓冲存储器)。

    概念的扩充
    如今缓存的概念已被扩充,不仅在CPU和主内存之间有Cache,而且在内存和硬盘之间也有Cache(磁盘缓存),乃至在硬盘与网络之间也有某种意义上的Cache──称为Internet临时文件夹或网络内容缓存等。凡是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构,均可称之为Cache。

    地址镜像与变换
    主条目:CPU缓存#组相联
    由于主存容量远大于CPU缓存的容量,因此两者之间就必须按一定的规则对应起来。地址镜像就是指按某种规则把主存块装入缓存中。地址变换是指当按某种镜像方式把主存块装入缓存后,每次访问CPU缓存时,如何把主存的物理地址(Physical address)或虚拟地址(Virtual address)变换成CPU缓存的地址,从而访问其中的数据。

    缓存置换策略
    主条目:CPU缓存#置换策略、分页和缓存文件置换机制
    主存容量远大于CPU缓存,磁盘容量远大于主存,因此无论是哪一层次的缓存都面临一个同样的问题:当容量有限的缓存的空闲空间全部用完后,又有新的内容需要添加进缓存时,如何挑选并舍弃原有的部分内容,从而腾出空间放入这些新的内容。解决这个问题的算法有几种,如最久未使用算法(LRU)、先进先出算法(FIFO)、最近最少使用算法(LFU)、非最近使用算法(NMRU)等,这些算法在不同层次的缓存上执行时拥有不同的效率和代价,需根据具体场合选择最合适的一种。

    磁盘缓存

    磁盘缓存

    16MB缓冲区的硬盘
    磁盘缓存(Disk Buffer)或磁盘快取(Disk Cache)实际上是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏。

    磁盘缓存是为了减少CPU透过I/O读取磁盘机的次数,提升磁盘I/O的效率,用一块内存来储存存取较频繁的磁盘内容;因为内存的存取是电子动作,而磁盘的存取是I/O动作,感觉上磁盘I/O变得较为快速。

    相同的技巧可用在写入动作,我们先将欲写入的内容放入内存中,等到系统有其它空闲的时间,再将这块内存的资料写入磁盘中。

    大小
    现在的磁盘通常有32MB或64MB缓存。旧的硬盘则有8MB或16MB。

    更多相关内容
  • 虚拟内存缓存 高速缓存存储器 (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 ...

    虚拟内存做缓存

    高速缓存存储器 (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 expensive as compared to main storage. So, a relatively small amount of cache is used.

    在内存层次结构中,还有一个额外的内存级别,即“缓存”。 它是高速存储,比主存储要快得多。 与主存储相比,它昂贵得多。 因此,使用了相对少量的缓存。

    Programs and data need to be in main storage to be executed. Program or data not needed immediately may be kept on secondary storage until needed and then brought into main memory for reference.

    程序和数据需要在主存储器中才能执行。 不需要的程序或数据可立即保存在二级存储中,直到需要时再放入主存储器中以供参考。

    Cache storage imposes this level of shuttling on the system. Programs in the main memory shuttled to the cache before being executed. In the cache, they may be executed much faster than in the main storage.

    高速缓存存储在系统上施加了此级别的穿梭。 主存储器中的程序在执行前先移入高速缓存。 在缓存中,它们的执行速度可能比在主存储器中快得多。

    There is a cache hit when the cache has a copy of the required data and there is a cache miss if the cache does not have a copy of that data item.

    当高速缓存具有所需数据的副本时,将发生高速缓存命中;如果高速缓存没有该数据项的副本,则将发生高速缓存未命中。

    The overhead involved in shuttling programs back and forth will be reduced so the performance increase obtained by the faster execution possible in the cache.

    来回穿梭程序所涉及的开销将减少,因此通过在缓存中更快地执行可能获得的性能提高。

    Cache memory is a faster memory type that acts as a buffer between main memory and the processor.

    高速缓存是一种较快的内存类型,可充当主内存和处理器之间的缓冲区。

    虚拟内存 (Virtual Memory)

    It is a memory management scheme that permits the execution of various processes which may not be entirely in RAM. It is possible that user programs can be larger than physical memory.

    它是一种内存管理方案,允许执行可能不完全位于RAM中的各种进程。 用户程序可能大于物理内存。

    A 'swap file' is created in this area which is used to sustain data which the processor does not need in a frequent amount of time.

    在该区域中创建了一个“交换文件”,用于维持处理器不需要的频繁数据。

    It makes the programming much simpler because the programmer doesn't have to take care of the size of the physical memory available.

    它使编程变得更加简单,因为程序员不必照顾可用物理内存的大小。

    By this CPU utilization and throughput increases as the user utilizes less physical memory. So more users can keep their programs in memory.

    这样,随着用户使用更少的物理内存,CPU利用率和吞吐量就会提高。 因此,更多用户可以将其程序保留在内存中。

    Cache Memory and Virtual Memory | Operating System

    虚拟内存与高速缓存之间的差异/差异 (Dissimilarities / Differences between and Virtual and Cache Memory)

    Virtual MemoryCache Memory
    The term "virtual memory" refers to space allocated on a hard disk where data can be stored for fast access. Cache memory is a small high-speed memory usually Static RAM (SRAM) that contains the most recently accessed pieces of main memory.
    Virtual memory enlarges the volume of RAM.By using cache Access time consumed by the processor is less as compared to main memory.
    Operating system has the control over virtual memory.Hardware has the control over cache memory.
    The size of virtual memory is more than cache memory.The size of Cache memory is less than virtual memory.
    In virtual memory, larger programs can be executed while there is a sufficiently small amount of main memory.The cache contains data items that are most frequently used by the processor while the whole program resides in the secondary memory.
    虚拟内存 高速缓存存储器
    术语“虚拟内存”是指在硬盘上分配的空间,可以在其中存储数据以进行快速访问。 高速缓存是一种小型高速存储器,通常为静态RAM(SRAM),其中包含最近访问的主存储器。
    虚拟内存扩大了RAM的容量。 通过使用高速缓存,与主内存相比,处理器消耗的访问时间更少。
    操作系统可以控制虚拟内存。 硬件可以控制缓存。
    虚拟内存的大小大于缓存内存。 缓存内存的大小小于虚拟内存。
    在虚拟内存中,可以在较大数量的主内存中执行较大的程序。 当整个程序驻留在辅助存储器中时,高速缓存包含处理器最常使用的数据项。

    翻译自: https://www.includehelp.com/operating-systems/differences-between-cache-memory-and-virtual-memory.aspx

    虚拟内存做缓存

    展开全文
  • 缓存和内存区别

    万次阅读 多人点赞 2017-04-18 07:50:17
    许多人认为,“缓存”是内存的一部分  许多技术文章都是这样教授的  但是还是有很多人不知道缓存在什么地方,缓存是做什么用的  其实,缓存是CPU的一部分,它存在于...缓存是为了解决CPU速度和内存速度的速度差异
    许多人认为,“缓存”是内存的一部分 
    许多技术文章都是这样教授的 
    但是还是有很多人不知道缓存在什么地方,缓存是做什么用的 
    其实,缓存是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找数据或指令的顺序是:先到一级缓存中找,找不到再到二级缓存中找,如果还找不到就只有到内存中找了

    ps: 小白未能找到最原创的源问,放一个小白看到的地址:http://blog.csdn.net/java_xxoo_android/article/details/43959411
    展开全文
  • 顾名思义文件缓存转内存缓存就是将存储在文件中的数据转到内存中去,实现磁盘操作转为内存操作,这样可以大大提高数据访问速度,并能实现缓存数据的分布式部署。文件缓存与内存缓存的介绍请参考名词解释部分
  • 目前支持内存、堆外内存、磁盘缓存。 功能特点: 支持二级缓存:Memory、Persistence 各个缓存可以拥有有效时间,超过时间缓存会过期 Memory 默认支持 FIFO、LRU、LFU 算法的实现 Memory 额外支持 Guava Cache、...
  • kache 一个使用go编写的简单内存缓存
  • 缓存分为内存缓存和磁盘缓存两种,其中内存是指当前程序的运行空间,缓存速度快容量小,是临时存储文件用的,供CPU直接读取,比如说打开一个程序,他是在内存中存储,关闭程序后内存就又回到原来的空闲空间;...

    缓存分为内存缓存和磁盘缓存两种,其中内存是指当前程序的运行空间,缓存速度快容量小,是临时存储文件用的,供CPU直接读取,比如说打开一个程序,他是在内存中存储,关闭程序后内存就又回到原来的空闲空间;磁盘是程序的存储空间,缓存容量大速度慢可持久化与内存不同的是磁盘是永久存储东西的,只要里面存放东西,不管运行不运行 ,他都占用空间!磁盘缓存是存在Library/Caches。说道iOS内存就不得不说内存分区了,iOS内存分为5个区:栈区,堆区,全局区,常量区,代码区栈区stack:这一块区域系统会自己管理,我们不用干预,主要存一些局部变量,以及函数跳转时的现场保护。因此大量的局部变量,深递归,函数循环调用都可能导致内存耗尽而运行崩溃。堆区heap:与栈区相对,这一块一般由我们自己管理,比如alloc,free的操作,存储一些自己创建的对象。全局区(静态区static):全局变量和静态变量都存储在这里,已经初始化的和没有初始化的会分开存储在相邻的区域,程序结束后系统会释放常量区:存储常量字符串和const常量代码区:存储代码

    在这里插入图片描述

    说道硬盘缓存这里就不得不提 iOS的沙盒机制, iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等

    在这里插入图片描述

    默认情况下,每个沙盒含有3个文件夹:Documents, Library 和 tmp。 Documents:苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录 Library:存储程序的默认设置或其它状态信息; Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除. Library/preferences: 存放的是 user default 存储的信息,iTunes会备份此目录, 应用程序重新启动不会丢弃数据,我们使用 NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中,这就是所谓的写到plist中! tmp:提供一个即时创建临时文件的地方, iTunes不会备份此目录用户生成的文件放在documents,自己的文件放在library/cache里面,简单的说明:如果你做个记事本的app,那么用户写了东西,总要把东西存起来。那么这个文件则是用户自行生成的,就放在documents文件夹里面。如果你有一个app,需要和服务器配合,经常从服务器下载东西,展示给用户看。那么这些下载下来的东西就放在library/cache。apple对这个很严格,放错了就会被拒。主要原因是ios的icloud的同步问题。

    展开全文
  • Picasso 的内存缓存。 我们可以通过这个自定义内存缓存。 用 // Loading pic. PicassoCache.getPicasso() .load("http://www.google.com/images/srpr/logo11w.png") .into(imageView); // Clear memory cache. ...
  • 内存缓存、虚拟内存区别

    千次阅读 2018-12-05 20:27:29
    其中对内存的管理是系统的最主要的职责,怎么样使有限的内存用在刀刃上,怎么要保证系统本身所需的内存(以防止死机,在win2000winxp里这一点已经做的非常好了  缓存是CPU的一部分,它存在于CPU中  CPU存取数据...
  • SQL Server引擎程序所占用缓存一般相对变化不大,则我们进行内存调优的主要着眼点在数据缓存和执行缓存的控制上。本文主要介绍一下执行缓存的调优。数据缓存的调优将在另外的文章中介绍。 对于减少执行缓存的占用,...
  • 内存缓存

    2020-12-04 23:35:26
    1.内存内存是计算机内部(在主板上)的一些存储器,用来保存CPU运算的中间数据计算结果。2.缓存缓存就是数据交换的缓冲区(又称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,找到了则直接执行,...
  • php内存缓存实现方法

    2021-01-21 16:05:55
    本文要来讲述关于php中内存缓存的一些方法,这里我们将介绍Memcached缓存php自带的APC缓存方法. 1.Memcached缓存。 memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高...
  • 一个简单小巧、可定制化、轻量级的基于内存的Python缓存组件
  • Android应用程序中图片的缓存策略采用“内存-本地-网络”三级缓存策略,首先应用程序访问网络拉取图片,分别将加载的图片保存在本地SD卡中和内存中,当程序再一次需要加载图片的时候,先判断内存中是否有缓存,...
  • 老电脑使用 内存容量还可以的时候就可以分一部分当硬盘缓存使用提高效率,32位系统不识别4G内存的,可以多余的给硬盘当缓存用。提高读取速度效率。
  • 先说明2点开启缓存也会带来开销,主要表现在一下方面读取在查询...下面讲一下mysql缓存如何使用内存查询缓存内存池被分为大小可变的块,每一个快都知道自己的大小,指向前一个后一个逻辑块物理块 的指针,服务
  • Linux上的DB2内存和文件缓存性能调优Linux上的DB2内存和文件缓存性能调优
  • 引言 ?命中强制缓存时,资源会显示 from memory cache or from disk cache ...两者的区别 ...内存缓存(from memory cache) ...内存缓存具有两个特点,分别是 ...内存缓存和硬盘缓存的区别 切底了解浏览器缓存
  • 内存缓存 高速缓存(英语:cache,英语发音:/kæʃ/ kash [1][2][3],简称缓存),其原始意义是指访问速度比一般随机存取存储器(RAM)快的一种RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM...
  • Volley框架二次封装,实现了带Cookie的GetPost请求,图片加载图片缓存(内存缓存,SD缓存,内存SD双缓存.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
  • 内存缓存>Redis缓存>数据库

    千次阅读 2018-03-14 21:00:49
    情况描述: 有以下几张表,单据表(t_bill)、货物表(t_cargo)、原料表(t_raw_material)、配置表(t_configure),表关系如下: 一张单据对应多个货物信息,每种货物都有自己对应的原料信息,货物原料都有...
  • 内存和缓存区别

    千次阅读 2016-07-05 17:55:19
    CPU内缓存的运行频率极高,一般是处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存...
  • 该项目实现了一个缓存模拟器,可用于研究比较各种缓存配置的有效性。 我的模拟器将读取给定文件中的内存访问跟踪,并根据某些参数来模拟根据这些内存访问模式进行的缓存将执行的操作
  • 内存和缓存之间有什么区别

    万次阅读 2012-03-04 18:53:48
    CPU内缓存的运行频率极高,一般是处理器同频运作,工作效率远远大于系统内存和硬盘。实际工作时,CPU往往需要重复读取同样的数据块,而缓存容量的增大,可以大幅度提升CPU内部读取数据的命中率,而不用再到内存...
  • 文章目录关系寄存器缓存(Cache)寄存器和缓存区别一级缓存和二级缓存内存**只读存储器**ROM(Read Only Memory)**随机存储器**RAM(Random Access Memory)静态RAM(Static RAM/SRAM)动态RAM(Dynamic RAM/DRAM...
  • PHP内存缓存的配置及使用
  • JAVA数据缓存之内存缓存

    千次阅读 2020-12-08 15:46:29
    java内存缓存其实就是本地缓存 , 实现方法一般是从数据库查询出需要缓存的数据然后放到map里 ,根据需求可分为增量缓存全量缓存,核心思想就是将想要查询数据库的用户拦住,从内存缓存中拿到想要的数据返回给用户...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,045,739
精华内容 418,295
关键字:

内存和缓存的区别

友情链接: ListViewCheckBox.zip