计算机的存储器层次结构以及一二三级缓存的区别

2023-05-16

  





hibernate一级缓存和二级缓存的区别:


主要的不同是它们的作用范围不同。
一级缓存是session级别的。
也就是只有在同一个session里缓存才起作用,当这个session关闭后这个缓存就不存在了。
而二级缓存是sessionFactory级别的。
其缓存对同一个sessionFactory生产出来的session都有效,二级缓存我们通常使用其他的一些开源组件,比如hibernate经常使用的就是ECache,这个缓存在整个应用服务器中都会有效的。

首先要明白缓存是干什么的,缓存就是要将一些经常使用的数据缓存到内存或者各种储存介质中,当再次使用时可以不用去数据库中查询,减少与数据库的交互,提高性能。
再说明一级与二级缓存的作用:一级缓存是Session级别的,也就是说在一个事务中才会启作用。比如在一个事务中同时查询同一个对象,则不会两次去数据库中查询。
而二级缓存是sessionFactory级别的,不同的事务之间是可以共享的,有些权限,当用户首次登陆后便将关联的权限放到二级缓存中,这样每次需要权限时就无需再查询数据库了。
最后再说明为什么这样设计:一般情况下,我们查询的数据一般是实时的,使用二级缓存肯定不行,使用一级缓存既利用了缓存又不会影响实时。
使用二级缓存是为了存储一些比较稳定的数据,如权限,只有在用户修改了权限且重新登录时才能生效


cpu中的一级缓存和二级缓存和三级缓存


一级缓存是什么: 
  一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率。一级缓存越大,CPU的运行效率越高,但受到CPU内部结构的限制,一级缓存的容量都很小。

  CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。由此可见,在CPU中加入缓存是一种高效的解决方案,这样整个内存储器(缓存+内存)就变成了既有缓存的高速度,又有内存的大容量的存储系统了。缓存对CPU的性能影响很大,主要是因为CPU的数据交换顺序和CPU与缓存间的带宽引起的。

  分类

  一级缓存可以分为一级数据缓存(Data Cache,D-Cache)和一级指令缓存(Instruction Cache,I-Cache)。二者分别用来存放数据以及对执行这些数据的指令进行即时解码,而且两者可以同时被CPU访问,减少了争用Cache所造成的冲突,提高了处理器效能。目前大多数CPU的一级数据缓存和一级指令缓存具有相同的容量,例如AMD的Athlon XP就具有64KB的一级数据缓存和64KB的一级指令缓存,其一级缓存就以64KB+64KB来表示,其余的CPU的一级缓存表示方法以此类推。

二级缓存是什么:


  CPU缓存(Cache Memory)位于CPU与内存之间的临时存储器,它的容量比内存小但交换速度快。在缓存中的数据是内存中的一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用大量数据时,就可避开内存直接从缓存中调用,从而加快读取速度。最初缓存只有一级,二级缓存(L2 CACHE)出现是为了协调一级缓存与内存之间的速度。二级缓存比一级缓存速度更慢,容量更大,主要就是做一级缓存和内存之间数据临时交换的地方用。实际上,现在Intel和AMD处理器在一级缓存的逻辑结构设计上有所不同,所以二级缓存对CPU性能的影响也不尽相同。

  工作原理

  缓存的工作原理是当CPU要读取一个数据时,首先从缓存中查找,如果找到就立即读取并送给CPU处理;如果没有找到,就用相对慢的速度从内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。


三级缓存是什么:

  三级缓存是为读取二级缓存后未命中的数据设计的—种缓存,在拥有三级缓存的CPU中,只有约5%的数据需要从内存中调用,这进一步提高了CPU的效率。其运作原理在于使用较快速的储存装置保留一份从慢速储存装置中所读取数据且进行拷贝,当有需要再从较慢的储存体中读写数据时,缓存(cache)能够使得读写的动作先在快速的装置上完成,如此会使系统的响应较为快速。

注意:只有一级缓存是在CPU中的,一级缓存的读取需要2-4个时钟周期;二级缓存的读取需要10个左右的时钟周期;而三级缓存需要30-40个时钟周期,但是容量一次增大。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机的存储器层次结构以及一二三级缓存的区别 的相关文章

随机推荐

  • 2022年打工人转行实录!你后悔转行了吗?

    2022年 xff0c 有许多年轻人在寻求 转行 根据 2022Q1中高端人才就业趋势大数据报告 xff0c 今年一季度有55 87 的职场人有跳槽计划 xff0c 而这之中 xff0c 有65 34 的职场人选择跨行业跳槽 在各种社交平台
  • 速看!TIOBE12月编程语言排行榜,第一名太牛啦!

    全球知名TIOBE编程语言社区发布了2022年12月的编程语言排行榜 我们一起来看看 xff0c 本月榜单中有哪些值得注意的新变化吧 xff01 自去年 10 月登顶后 xff0c Python 至今仍牢牢占据榜一大哥的位置 C 43 43
  • 使用MFC的CDC类绘制三维坐标系及球面函数

    系列链接 使用MFC的CDC类绘制二维坐标系及正余弦函数 源码 使用MFC的CDC类绘制三维坐标系及球面函数 源码 概述 本文使用MFC的CDC类绘制三维坐标系及球面函数 首先计算推导出三维坐标在二维平面显示的坐标变换方程 xff08 使用
  • Android R系统Fingerprint指纹流程归纳

    孩子长大 xff0c 倘无才能 xff0c 可寻点小事情过活 xff0c 万不可做空头文学家或美术家 鲁迅 1 Android R中framework中需要新的配置项才会在SetupWizard中启动Settings的BiometricEn
  • Python爬虫深造篇(一)——多线程网页爬取

    一 前情提要 相信来看这篇深造爬虫文章的同学 xff0c 大部分已经对爬虫有不错的了解了 xff0c 也在之前已经写过不少爬虫了 xff0c 但我猜爬取的数据量都较小 xff0c 因此没有过多的关注爬虫的爬取效率 这里我想问问当我们要爬取的
  • RabbitMQ:消息何去何从

    在正常情况下 xff0c 生产者产生并发送一条消息然后被交换器正确路由到某个队列中 但是如果一条消息不能被正确路由到某个队列时 xff0c 那么这条消息该何去何从呢 xff1f RabbitMQ提供以下几个处理方案 xff1a xff08
  • Mysql 10061 Unknown error

    一 问题 二 解决方法 1 打开任务管理器找到Mysql服务 2 右键 打开服务 3 找到Mysql 启动类型设置为 自动 4 启动服务 5 启动成功后再次尝试链接 xff0c 数据库成功打开
  • Thonny,Python小白最理想的IDE

    目录 前言 Thonny的特点 安装使用 下载安装 运行 xff1a 第一行代码 Hello xff0c World 前言 很多伙伴在学习我们Python基础语法交互的时候 xff0c 问道Python怎么安装 xff1f 我们开发的Pyt
  • 【超详细】【ubunbu 22.04】 手把手教你安装nvidia驱动,有手就行,隔壁家的老太太都能安装

    目录 前言 一 英伟达官网下载驱动 二 更新软件列表和安装必要软件 依赖 三 进入tty模式 1 关闭图形界面进入tty模式 2 进入tty以后需要输入用户名和密码登录 3 禁用X window服务 四 安装驱动 五 返回图形界面 六 可能
  • 全志a20 fastboot烧写system.img时出现 data too large 错误

    在调试 全志a20的过程中 xff0c 使用fastboot烧写system image出现 xff1a data too large 错误 解决方法 xff1a 修改lichee u boot include configs sun7i
  • linux系统中rpm与Yum软件仓库

    rpm的作用 xff1a 在没有rpm软件管理之前我们在安装 升级 卸载服务程序时要考虑到其他程序 库的依赖关系 xff0c 所以在进行安装 校验 卸载 升级等操作时的难度就非常之大 rpm机制则为就是为了解决这些问题而设计的 xff0c
  • 老杜带你从零入门MyBatis,学MyBatis看这篇就够了!

    MyBatis本是apache的一个开源项目iBatis xff0c 2010年这个项目由apache software foundation迁移到了google code xff0c 并且改名为MyBatis 2013年11月迁移到Git
  • Docker全家桶入门到进阶教程,Docker快速上手

    开发 运维互掐 开发与测试和运维间的矛盾 xff0c 主要是由于环境的不同而引发的 如果能将开发人员使用 的环境交给测试与运维使用 xff0c 这些问题就都能解决 DevOps DevOps 是一种思想 xff0c 是一种管理模式 xff0
  • 2023最新动力节点MybatisPlus笔记——第一章入门篇

    第一章 入门篇 2023最新动力节点MybatisPlus笔记 第一章入门篇 第二章 基础篇 2023最新动力节点MybatisPlus笔记 第二章基础篇 第三章 进阶篇 2023最新动力节点MybatisPlus笔记 第三章进阶篇 1 M
  • 2023最新动力节点MybatisPlus笔记——第三章进阶篇

    3 进阶篇 3 1 映射 学习过Mybatis的同学应该知道 xff0c Mybatis框架之所以能够简化数据库操作 xff0c 是因为他内部的映射机制 xff0c 通过自动映射 xff0c 进行数据的封装 xff0c 我们只要符合映射规则
  • 2023最新版动力节点MybatisPlus实战教程——高级篇

    来自B站动力节点最新版的MybatisPlus教程 xff0c 整理了笔记 第四章高级篇 4 高级篇 4 1 主键策略 4 1 1 主键生成策略介绍 首先大家先要知道什么是主键 xff0c 主键的作用就是唯一标识 xff0c 我们可以通过这
  • 一体机重装系统时不小心分区了,别的盘的数据怎样恢复

    全盘格式化是由于在重装系统时 xff0c 选择了错误的选项导致全盘分区了 xff0c 装完之后文件全部丢失 想要恢复丢失盘的文件 xff0c 需要注意 xff0c 别往现在的这个盘存入新的文件 xff08 因为现在存入的文件可能会覆盖原先D
  • DDGCN: A Dynamic Directed Graph Convolutional Network for Action Recognition

    Introduction 作者认为解决如下两个问题能有效增强GCN在动作识别中的能力 xff1a 1 在人类骨骼的不同部位中有着时空关联性 xff0c 但这些关联性是动态的 xff0c 而且在时空域中不同的动作关联性也是不同的 标椎卷积操作
  • 2023最新版动力节点MybatisPlus实战教程——拓展篇

    5 拓展篇 5 1 逻辑删除 前面我们完成了基本的增删改查操作 xff0c 但是对于删除操作来说 xff0c 我们思考一个问题 xff0c 在实际开发中我们真的会将数据完成从数据库中删除掉么 xff1f 当然是不会的 xff0c 这里我们举
  • 计算机的存储器层次结构以及一二三级缓存的区别

    hibernate 一级缓存和二级缓存的区别 xff1a 主要的不同是它们的作用范围不同 一级缓存是session级别的 也就是只有在同一个session里缓存才起作用 xff0c 当这个session关闭后这个缓存就不存在了 而二级缓存是