首页
学习
活动
专区
圈层
工具
发布

体系结构复习笔记

6.11 MIPS MIPS:每秒数百万条指令 7. cache 命中率:命中/访问 未命中:1 - 命中率 未命中时从较低存储级别复制块 7.1 直接映射缓存 (块地址)%(#缓存中的块)...7.2 缓存命中与否 未命中:停顿CPU流水线,从下一层次结构中获取块 指令缓存未命中:重新启动指令获取 数据缓存未命中:完整的数据访问 7.3 直写(Write Through) 命中:数据写入命中时...未命中: 分配未命中(Allocate on miss):更新该缓存块。...(Compulsory misses)(冷启动未命中):首次访问块 容量缺失(Capacity misses):由于缓存大小有限,稍后再次访问替换的块 冲突未命中(Conflict misses):在非完全关联的缓存中...对于同一源文件中未初始化的全局变量, 从实验来看, 它们是按照字母顺序分配内存的, 不论定义顺序。对于不同源文件间全局变量, 是按照链接器处理的顺序。

2.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    考试预生成方案

    ,未命中则动态创建 • 垃圾清理:定时任务自动清理未使用的预生成记录,避免数据冗余 • 容错机制:预生成失败不影响考试发布,新增学生自动降级为动态创建 2....][缓存未命中(新增学生)]阶段4:定时清理(每天凌晨2点)发布考试PublishExamSettingAsync更新考试状态为Published返回成功查询已发布且尚未开始的考试检查是否已预生成分批创建....) - 创建或激活考试记录 • 优先查询缓存获取预生成记录ID • 命中则更新状态和开始时间 • 未命中则动态创建 2.3.3 任务处理器 定时预生成任务处理器 (ExamRecordScheduledPreGenerationTaskHandler...批次间延迟 200ms,避免系统压力过大 6. 记录每批成功/失败数量 7....- >85% - 4.2 优化措施 4.2.1 缓存优先查询 • 开始考试时优先查询缓存,命中则直接加载记录 • 缓存未命中才查询数据库,减少数据库压力 4.2.2 批量操作 • 预生成时使用批量插入

    8110

    缓存设计问题杂谈

    如果这些 key 在同一时间失效, 那么失效的时候,大量的请求过来。就会直接打到 DB 上, 这个时候 DB 很可能被打垮,即使马上重启也会被新的流量打垮。...这种同一时间大量缓存的失效,导致请求直接打到 DB 上的情况, 就是缓存雪崩。...优点: 简单公平, 易于实现 缺点: 缓存命中率低, 常用数据容易被淘汰掉 LRU 最近最久未使用: 如果一个数据最近很少被访问到,那么被认为在未来被访问的概率也是最低的,当规定空间用尽且需要放入新数据的时候...其实一个hash函数会冲突是比较低的,布隆过滤器 的优化之一,设置多个hash函数,多个hash函数,个个都冲突的概率就微乎其微了。...Count-Min Sketch算法将一个hash操作,扩增为多个hash,这样原来hash冲突的概率就降低了几个等级,且当多个hash取得数据的时候,取最低值,也就是Count Min的含义所在。

    25810

    缓存设计问题杂谈

    如果这些 key 在同一时间失效, 那么失效的时候,大量的请求过来。就会直接打到 DB 上, 这个时候 DB 很可能被打垮,即使马上重启也会被新的流量打垮。...这种同一时间大量缓存的失效,导致请求直接打到 DB 上的情况, 就是缓存雪崩。...优点: 简单公平, 易于实现 缺点: 缓存命中率低, 常用数据容易被淘汰掉 LRU 最近最久未使用: 如果一个数据最近很少被访问到,那么被认为在未来被访问的概率也是最低的,当规定空间用尽且需要放入新数据的时候...其实一个hash函数会冲突是比较低的,布隆过滤器 的优化之一,设置多个hash函数,多个hash函数,个个都冲突的概率就微乎其微了。...Count-Min Sketch算法将一个hash操作,扩增为多个hash,这样原来hash冲突的概率就降低了几个等级,且当多个hash取得数据的时候,取最低值,也就是Count Min的含义所在。

    29200

    CodeSpirit-考试预生成方案

    ,未命中则动态创建 • 垃圾清理:定时任务自动清理未使用的预生成记录,避免数据冗余 • 容错机制:预生成失败不影响考试发布,新增学生自动降级为动态创建 ---- 2....][缓存未命中(新增学生)]阶段4:定时清理(每天凌晨2点)发布考试PublishExamSettingAsync更新考试状态为Published返回成功查询已发布且尚未开始的考试检查是否已预生成分批创建....) - 创建或激活考试记录 • 优先查询缓存获取预生成记录ID • 命中则更新状态和开始时间 • 未命中则动态创建 2.3.3 任务处理器 定时预生成任务处理器 (ExamRecordScheduledPreGenerationTaskHandler...批次间延迟 200ms,避免系统压力过大 6. 记录每批成功/失败数量 7....- >85% - 4.2 优化措施 4.2.1 缓存优先查询 • 开始考试时优先查询缓存,命中则直接加载记录 • 缓存未命中才查询数据库,减少数据库压力 4.2.2 批量操作 • 预生成时使用批量插入

    12510

    腾讯会议10秒编译百万代码|鹅厂编译加速标杆案例公开

    可能一个 module 代码冲突还好,但如果是 module API 的修改了呢?那就是所有 module 都需要更新了,这是非常机械且令人头疼的!...当 xx_plugins 未命中增量时,由于 lib_app 依赖了 xx_plugins 源码库,cmake 会同时编译 lib_app 与 xx_plugins; 当 xx_plugins 命中增量时...gradle 本身就是脚本,那么我们可以在增量脚本执行后,根据脚本的执行结果,命中产物的模块则以 maven 方式依赖,未命中的则以源码依赖。...比如模块 B 命中增量、模块 C 未命中时,由于 B 使用 projectWm 替换成了 maven 依赖,而模块 C 会因为模块的 maven 产物中 pom.mxl 定义的依赖关系给带过来,也就是模块...下方关注腾讯云开发者并点亮星标 第一时间看腾讯方案和学习资源

    2.4K80

    进程内缓存助你提高并发能力!

    比如key的上限设置等 基础操作缓存 // 1. add/update 增加/修改都是该API cache.Set("first", "first element") // 2. get 获取key下的...有几个选择: 开一个定时器,不断循环所有key,等到了预设过期时间,执行回调函数(这里是删除map中过的key) 惰性删除。访问时判断该键是否被删除。缺点是:如果未访问的话,会加重空间浪费。...而设计其实也很简单,就是:Get() 命中,就在统计 count 上加1即可。...hit+1 c.stats.IncrementHit() } else { // 未命中miss+1 c.stats.IncrementMiss() } return...value, ok } 多线程存取 当多个协程并发存取的时候,对于缓存来说,涉及的问题以下几个: 写-写冲突 LRU 中元素的移动过程冲突 并发执行写入缓存时,造成流量冲击或者无效流量 这种情况下,写冲突好解决

    84230

    腾讯会议10秒编译百万代码|鹅厂编译加速标杆案例公开

    可能一个 module 代码冲突还好,但如果是 module API 的修改了呢?那就是所有 module 都需要更新了,这是非常机械且令人头疼的!...,lib_app link 源码库; 命中增量时,通过 add_library 导入这个预编译的产物作为 library,lib_app link 预编译库; 未命中增量时,通过 add_subdirectory...当 xx_plugins 未命中增量时,由于 lib_app 依赖了 xx_plugins 源码库,cmake 会同时编译 lib_app 与 xx_plugins; 当 xx_plugins 命中增量时...gradle 本身就是脚本,那么我们可以在增量脚本执行后,根据脚本的执行结果,命中产物的模块则以 maven 方式依赖,未命中的则以源码依赖。...比如模块 B 命中增量、模块 C 未命中时,由于 B 使用 projectWm 替换成了 maven 依赖,而模块 C 会因为模块的 maven 产物中 pom.mxl 定义的依赖关系给带过来,也就是模块

    1.1K30

    哈希算法篇——散落的秘密与精准的归宿,混沌中的秩序之美(上)

    加法与乘法哈希函数: 在更多场景中,结合数据的多个特征,通过加权或乘法的方式生成哈希值,例如 h(x)=(ax+b) mod m 这种方法能显著降低简单取模的冲突概率。...尽管简单,但这种方法容易引发哈希冲突,因为不同的输入可能映射到相同的哈希值。 3.2 基本的哈希表实现 哈希表是一种数据结构,通过哈希函数快速定位存储值。...链地址法:当两个键映射到同一个索引时,将它们存储在该桶(Bucket)中的链表中,解决哈希冲突。 插入操作:通过哈希函数计算键的索引,将键插入到对应桶中。...capacity(cap) {} int get(int key) { if (cache.find(key) == cache.end()) return -1; // 缓存未命中...缓存命中:如果键存在,将其移动到链表头部。 缓存未命中:如果缓存满了,移除链表尾部的键。 改进策略 使用动态扩展的哈希表(如 Python 的 dict)。

    13510

    mysql各种锁,一篇文章讲明白

    虽然 SQL 非常简单,但是针对不同类型的列,我们还是会面对各种情况: 聚簇索引,查询命中:UPDATE students SET score = 100 WHERE id = 15; 聚簇索引,查询未命中...= 'Tom'; 二级非唯一索引,查询未命中:UPDATE students SET score = 100 WHERE name = 'John'; 无索引:UPDATE students SET...如果查询未命中纪录,在 RC 和 RR 隔离级别下加锁是不一样的,因为 RR 有 GAP 锁。...二级非唯一索引,查询未命中 如果查询未命中纪录,RR 隔离级别会加 GAP 锁,RC 无锁。...; 4.避免在同一时间点运行多个对同一表进行读写的脚本,特别注意加锁且操作数据量比较大的语句;我们经常会有一些定时脚本,避免它们在同一时间点运行; 5.设置锁等待超时参数:innodb_lock_wait_timeout

    2.4K52

    【JAVA全栈项目】弧图图-智能图床SpringBoot+MySQL API接口结合Redis+Caffeine多级缓存实践解析

    接口是服务间通信的核心载体,而数据存储与缓存策略则直接决定了接口的性能与稳定性。...一、基础架构:Spring+MySQL实现API接口Spring生态中,SpringBoot结合MyBatis/MyBatis-Plus可快速搭建基于MySQL的API接口服务。...;分布式缓存查询:若Caffeine未命中,查询Redis分布式缓存,若命中则将数据同步到Caffeine后返回;数据库查询:若Redis也未命中,查询MySQL数据库,将查询结果同步到Redis和Caffeine...3.1.2分布式场景适配在微服务架构中,Caffeine的本地缓存可减少服务间对Redis的竞争,而Redis确保了不同服务实例间的缓存一致性。...例如,订单服务查询用户信息时,先查本地Caffeine缓存,未命中再查Redis缓存,最后调用用户服务接口并同步缓存,降低服务间的耦合度。

    41821

    个人信用分接口完整开发指南:从加密传输到风险评估的实战应用

    t={13位时间戳}认证方式:请求头需携带 Access-Id(账号的访问凭证)加密算法:AES-128-CBC模式,PKCS7填充,随机IV传输格式:请求参数和响应数据均经过加密后Base64编码请求参数...生成13位时间戳 timestamp = str(int(time.time() * 1000)) # 6....print(f"信用评分: {score}") # 根据评分进行风控决策 if score == "-1": print("决策建议: 未命中数据...用于追踪和问题排查data加密数据Base64编码的加密业务数据,需解密后使用4.3 业务数据字段字段名含义说明score_120_General个人综合信用评分分值范围300-900分,分数越高信用越好;-1表示未命中数据...4.4 信用评分分段策略分数区间信用等级风控建议300-449高风险建议直接拒绝450-649中等风险需结合其他维度综合评估650-900低风险建议通过-1数据未命中无历史数据,建议人工审核或使用其他验证方式

    20110

    计算机结构 cheatsheet

    高速缓存 命中时直接对cache存储器寻址,时间tc 未命中时,主存寻址并且读入cache,时间tm 平均访存时间ta在tc和tm之间,取决于命中率 提高命中率:替换算法 LRU最近最少使用 地址映像:...冲突概率高,多个主存块竞争一个Cache行时命中率会下降 全相联映像(Fully Associative Mapping) 主存的任何块都可以映射到Cache的任何行,没有固定的映射关系。...CPU访问主存时,Cache控制器会检查所有Cache行,看是否有与主存块匹配的标记 冲突概率最低,实现复杂,硬件开销大,因为需要比较所有Cache行的标记。...,通过页表查找物理地址 段式segment:段长不固定,段间不连续存在碎片 段页式:逻辑分段,主存分页,每个段管理页表 页面替换:LRU 磁盘阵列 RAID 冗余独立磁盘阵列Redundant Independent...,从而同时处理多个任务,多处理机系统和陈列式处理机属于资源重复 资源共享:通过软件方法使多个任务轮流使用同一套硬件设备,操作系统任务调度属于资源共享 计算机安全 信息安全的基本要素: 保密性:信息不被未授权的第三方获取

    46410

    锁等待分析:事务隔离级别与锁粒度优化

    一、事务隔离级别对锁等待的影响事务隔离级别定义了并发事务间的可见性规则,不同级别通过锁机制实现数据一致性,但会引发不同层级的锁竞争: 隔离级别与锁机制关系READ UNCOMMITTED:无共享锁,允许脏读...当多个事务同时更新同一账户余额时: UPDATE accounts SET balance = balance - 100 WHERE id = 123; -- 排他锁阻塞后续事务在REPEATABLE READ级别下,事务A未提交时...降低隔离级别可快速缓解锁冲突,但必须评估业务风险。...五、索引优化:消除隐藏锁陷阱不合理的索引设计会意外扩大锁范围: 聚集索引锁升级问题:当更新非索引列时,若WHERE条件未命中索引,InnoDB会将行锁升级为表锁 UPDATE orders SET...间隙锁避坑指南触发条件:REPEATABLE READ下范围查询未命中唯一索引 规避方案: 查询使用SELECT ...

    28221

    小白入门——哈希算法

    ② 处理碰撞冲突的过程 Hash函数 一个好的Hash函数应满足下列两个要求: 一致性 —— 等价(equal)的key必然产生相等的hash code 高效性 —— 高效的计算 均匀性 —— 均匀地散列所有的...这样的线性探测可能会产生三种结果: a)命中,该位置的键和被查找的键相同; b)未命中,键为空(该位置没有键) c)继续查找,该位置的键和被查找的键不同。...,如果遇到空元素则未命中。...命题 M :在一张大小为 M 并含有 N = α * M 个键的基于线性探测的哈希表中,基于假设 J ,命中和未命中的查找所需的探测次数分别为: 特别是当 α 约为 1/2 时,查找命中所需要的探测次数约为...3/2,未命中所需要的约为 5/2。

    1.3K20

    Cache(高速缓冲器)完全解读:计算机的速度“秘密武器”

    ——两种访问策略 策略1:先访问Cache,未命中再访问内存 CPU请求数据 ↓ 检查Cache ↓ ├─ 命中 → 返回数据(快速!)...↓ 如果Cache未命中 → 继续内存访问 优点:减少未命中时的延迟 缺点:更耗能,电路更复杂 五、关键概念详解 1....AI代码 → 指令Cache缓存 Cache优化技巧: - 数据紧凑排列 - 顺序访问内存 - 减少随机访问 七、Cache未命中的三种类型 类型 原因 比喻 解决方法 强制性未命中 第一次访问数据...第一次买新食材 预取技术 容量性未命中 Cache容量不足 冰箱太小放不下 增大Cache,优化数据大小 冲突性未命中 多个数据映射到同一Cache位置 冰箱格子冲突 提高关联度 八、Cache优化技巧...编程层面: 循环优化:尽量顺序访问数组 数据结构优化:使用紧凑的数据结构 分块技术:大数组分块处理 预取提示:提示CPU提前加载数据 硬件层面: 多级Cache:L1、L2、L3分层 提高关联度:减少冲突未命中

    15210
    领券