【操作系统】聊聊局部性原理是如何提升性能的

news2025/6/17 16:14:04

对于目前数据主导的系统,大多数都是Java/Go 技术栈+MySQL,但是随着时间的推移,数据库数据的数据量过多,并且会频繁访问热点数据,为了提升系统的性能,一般都是加入缓存中间件、Redis。

局部性原理

在这里插入图片描述
我们知道在CPU中为了提升CPU执行速度,避免从内存获取数据过慢,所以就会引入一二三级缓存,三级缓存对于所有核是共享,一二级是独享的。

在这里插入图片描述
而从途中可以看到,从l1 Cache到Disk 价格是越来越便宜,但是存储空间越来越大,但是访问速度越来越慢。
那么可不可以找到一种方案就是用更便宜的存储器来提升速度。业界就是采用局部性原理。
局部性原理分为两个,一个是时间局部性,另一个是空间局部性。

  • 时间局部性:同一份数据在短时间内回被访问多次。
  • 空间局部性:相邻的数据会被连续访问。

这样就可以将频繁访问的数据放入速度更快的cache中,而剩余数据存储在廉价的磁盘中。
这样就没有问题了嘛,其实缓存的引入虽然可以提升系统读性能。但是也引入以下几个问题

  • 数据淘汰策略 -> LRU
  • 缓存命中率
  • 缓存失效、缓存更新,数据一致性问题等。

所以本质上,通过引入缓存是通过牺牲数据强一致性来提升性能的。

小结

本篇主要简单介绍来以下时间局部性,为了在成本和性能之间权衡,引入时间局部性原理,将热点数据存储在速度更快的存储设备中,提升整体的性能。但是缓存的引入需要考虑几点,缓存的高可用性(副本、分片机制),缓存命中率、缓存淘汰算法、缓存更新、缓存失效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/950828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Pytorch学习:神经网络模块torch.nn.Module和torch.nn.Sequential

文章目录 1. torch.nn.Module1.1 add_module(name,module)1.2 apply(fn)1.3 cpu()1.4 cuda(deviceNone)1.5 train()1.6 eval()1.7 state_dict() 2. torch.nn.Sequential2.1 append 3. torch.nn.functional.conv2d 1. torch.nn.Module 官方文档…

python的可哈希对象

一、介绍 在Python中,可哈希(hashable)是指一种对象类型,该类型的对象可以用作字典的键(keys)或集合(sets)的元素。可哈希的对象具有以下特点: 不可变性(Imm…

【Interaction交互模块】LinearTransformDrive线性变换驱动

文章目录 一、预设位置二、案例:建一个按下后可自动抬起的按钮三、留有疑问 一、预设位置 交互——可控制物体——变换——线性变换驱动 二、案例:建一个按下后可自动抬起的按钮 按钮的结构和设置如下图 为了让它碰触时,往下走——预设体…

【Go 基础篇】Go语言结构体基本使用

在Go语言中,结构体是一种重要的数据类型,用于定义和组织一组不同类型的数据字段。结构体允许开发者创建自定义的复合数据类型,类似于其他编程语言中的类。本文将深入探讨Go语言中结构体的定义、初始化、嵌套、方法以及与其他语言的对比&#…

Java八股文学习笔记day01

01.和equals区别 对于字符串变量来说,使用""和"equals"比较字符串时,其比较方法不同。""比较两个变量本身的值,即两个对象在内存中的首地址,"equals"比较字符串包含内容是否相同。 对于非…

VR司法法治教育平台,沉浸式课堂教学培养刑侦思维和能力

VR司法法治教育平台提供了多种沉浸式体验,通过虚拟现实(Virtual Reality,简称VR)技术让用户深度参与和体验法治知识。以下是一些常见的沉浸式体验: 1.罪案重现 VR司法法治教育平台可以通过重现真实案例的方式,让用户亲眼目睹罪案发…

基于天鹰算法优化的BP神经网络(预测应用) - 附代码

基于天鹰算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于天鹰算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.天鹰优化BP神经网络2.1 BP神经网络参数设置2.2 天鹰算法应用 4.测试结果:5.Matlab代码 摘要…

Python 的画图函数 seaborn 简介

seaborn 简介 seanborn 是 Python 的另外一个常用工具包,它基于 matplotlib,但画出的图形更加美观些,并且与 Pandas 的数据类型结合地较好。 # Import seaborn import seaborn as sns import matplotlib.pyplot as plt# Apply the default …

选择一款可靠的仓库管理软件

在选择仓库管理软件时,数据的准确性、数据的安全性和软件的稳定性这三点是至关重要的。下面我们将详细讨论这些关键点。 第一,数据的准确性对于一个仓库管理软件来说是非常重要的。如果数据的准确性无法得到保证,那么这样的仓库入库出库管理…

华为OD七日集训第1期复盘 - 按算法分类,由易到难,循序渐进,玩转OD(文末送书)

目录 一、活动内容如下第1天、逻辑分析第2天、字符串处理第3天、数据结构第4天、双指针第5天、递归回溯第6天、二分查找第7天、贪心算法 && 二叉树 二、可观测性工程1、简介2、主要内容 大家好,我是哪吒。 最近一直在刷华为OD机试的算法题,坚持…

RT-Thread内核机制 线程栈

int flag;void cmp_val(int a,int b) {volatile int tmp[10];tmp[0] a;if(tmp[0] > b){flag 1;}else{flag 0;} }int main() {int a 1;int b ;cmp_val(a,b);return 0; }我们写好的程序会保存在Flash上。 其它类似汇编指令 SUB R0,R0,#4 R0 R0-4 B LR 放入LR寄存器 局…

Swift使用PythonKit调用Python

打开Xcode项目。然后选择“File→Add Packages”,然后输入软件包依赖链接: ​https://github.com/pvieito/PythonKit.git https://github.com/kewlbear/Python-iOS.git Python-iOS包允许在iOS应用程序中使用python模块。 用法: import Pyth…

超大屏画质奇迹 !TCL 115吋 QD-Mini LED 电视成豪宅顶配

有目共睹的是,现如今的电视屏幕越做越大。 尤其近年来,大屏电视的趋势愈发明显,原因无他,大屏电视所带来的震撼视觉体验,是其他电视所无法比拟的,这也正是电视品牌们不断突破新局限,往“大”了…

Python 画多个子图函数 subplot

子图函数 subplot 若要 pyplot 一次生成多个图形,一般要用到subplot函数,另外还有一个subplots函数。两个函数比较接近但略有区别,限于篇幅,我们只介绍 subplot函数,它的基本语法如下: ax plt.subplot(n…

【C语言基础】变量类型,Static关键字的使用

📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…

【C/C++】#define宏替换高级用法

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

载舟前行——2023跳槽涨薪,Android的1000道面试题

转眼没有口罩的一年&#xff0c;就来到下半年。比起之前几年今天愈发的艰难&#xff1b;今年的金九银十的来到&#xff0c;许多跳槽找工作的也来到了旺季。岗位的减少无疑造成的后果就是竞争大&#xff0c;所以面试优胜劣汰你需要在千百人中脱颖而出。 面试不容小觑&#xff0…

英文晨读记录(broken heart)

2023/8/28 mate 配偶;伙伴;朋友;(男人之间常 用)哥儿们&#xff0c;伙计&#xff0c;老兄;同伴;subject n. 主题;问题;学科;课程;科目;话题;题目;题材;表现对象; adj. 服从于;取决于;视…而定;易遭受…的;受…支配;可能受…影响的;受异族统治的 vt. 使臣服;使顺从;(尤指)压服 …

Go 面向对象(匿名字段)

概述 严格意义上说&#xff0c;GO语言中没有类(class)的概念,但是我们可以将结构体比作为类&#xff0c;因为在结构体中可以添加属性&#xff08;成员&#xff09;&#xff0c;方法&#xff08;函数&#xff09;。 面向对象编程的好处比较多&#xff0c;我们先来说一下“继承…

软件系统测试报告包括哪些内容?对软件产品起到什么作用?

软件系统测试报告是软件开发过程中非常重要的一环。它是一个详细记录了对系统进行测试的结果和总结的文档。通过系统测试报告&#xff0c;开发人员可以了解系统在测试过程中的表现&#xff0c;发现系统的问题和不足之处&#xff0c;从而采取相应的措施进行改进。 一、软件系统…