考研408《计算机组成原理》复习笔记,第二章计算机性能
一、计算机各项性能指标
1、计算机系统整体的性能指标:
从宏观上看,整个计算机是由软件硬件共同性能决定的,但是【最主要的决定性的影响】还是来自于【硬件】
因为计算机组成原理主要讲【硬件】,那么我们也仅考虑【硬件性能】
2、基本性能指标
1)机器字长(也称 “数据通路宽度”)
就是指数据一次所能传输的数据的位数,也就是我前面《第一章计算机概论》讲到的“一个N位计算机”里的【N位】,也就是【机器字长】或【字长】
注意:(CPU的运算器里的【ALU位数】和【通用寄存器宽度】和【CPU定点计算的数据通路宽度】和【机器字长】一样!!!!)
;
有的地方喜欢说【机器字长】是:
【计算机运算数据的基本单位】
【CPU内部和整数计算有关的寄存器的保存的字长】
【和“运算精密度”有关】
;
例题:
上一篇:考研408《计算机组成原理》复习笔记,第一章计算机系统概述_计算机组成原理考研知识点总结-CSDN博客
(注意:【数据通路宽度】但也不完全就等于【机器字长】,因为有的计算机也会设计【数据通路宽度】跟【存储字长】一样大)
;
另外,区分一下【地址总线字长】和【地址码长度】......等等的这些关系
尤其记住:【MAR】不等于【MAR位数】,这是两个概念
2)主存(内存)容量
这里我们也在前面讲过了,记住:
因为程序是在主存(内存)里运行的,CPU直接访问的是主存,所以当主存容量越大,就越减少访问外存的机会,那么【读、存】内存的速度远大于外存,所以内存越大速度越快
【主存容量】=【有几个存储体】*【一个存储体可存几位二进制数】
=【MAR】*【MDR位数】
=【2^MAR位数】*【MDR位数】
=【地址码长度】*【存储字长】
;
注意:题目当已给出明确的条件:“主存里包含M个存储单元,每个存储单元可存N个二进制位”
那么【M个存储单元】=【2的MAR位数次方】、【每个存储单元N个位】=【MDR位数】
所以直接【主存容量】= 【N】 * 【M】
;
;
例题:
3)吞吐量和响应时间
影响计算机运算速度的因素有很多,包括cpu快慢、显卡图形处理、内存大小、系统总线...等等,那么这些因素主要无非就是决定了这两个主要影响因素:【吞吐量】和【响应时间】
注意:在【用户角度】(即“肉眼可见”的计算机性能指标就是【吞吐量】和【响应时间】)
【吞吐量】:指的是系统在单位时间内能够处理的数据量或任务数量。
;
它取决于信息能多快输入内存、CPU能多快从内存取出,以及结果能多快从内存传给一个外部设备。那么既然每一步都涉及到主存储器,那么吞吐量主要取决于【主存储器的存取周期】
【响应时间】:指用户向计算机发一个请求到系统接收后返回响应结果所需要的时间。
;
响应时间通常是【CPU时间】+【等待时间】,【CPU时间】就是运行一个程序的时间,【等待时间】就是磁盘、存储器访问、I/O操作等等所要花费的时间。
例题:
3、(这才是重点)CPU的性能指标:
cpu是最主要能决定一个计算机【运算速度】性能的因素
1)运算速度的概念、衡量指标
计算机的运算速度是衡量计算机性能的一个重要指标,它直接反映了计算机在单位时间内能够执行的操作数量。这个指标通常用“MIPS”(每秒百万条指令)来衡量,即每秒处理的机器语言指令数。
(其实计算机的运算速度【主要就是指CPU的性能】,虽然还有别的因素,但是CPU是主要,而且MIPS也是衡量CPU速度的一个指标,它代表了CPU在每秒内能够执行的指令数量。)
2)主频(时钟频率)和CPU时间周期(时钟周期)
既然CPU性能是计算机运算速度的主要因素,那么我们就来看看CPU的性能。
平时我们打游戏的时候为了让自己的电脑能玩得顺,或者看视频、干一些复杂的活的时候都会提到CPU,那么选购CPU的时候我们就会看到这些配置属性:3.6Hz、2.9Hz、3.0Hz......这些多少多少HZ是啥?
【CPU数字脉冲信号】
CPU时钟信号【CPU数字脉冲信号】是一段固定频率的【数字脉冲信号】,就像下图这样
它是用来控制指令指令规律执行的频率的,就像你听歌时不能前几秒匀速放歌,然后后几秒突然停住,然后突然加速放几百首歌吧?
那【CPU数字脉冲信号】就是像广播体操的口令“一二三四、二二三四、三二三四......”一样控制节奏的玩意,让计算机有规律的执行【每一个指令】
【CPU的主频】
一段时钟信号(数字脉冲信号)里的频率、有多少Hz,就是【CPU的主频】,它的单位就是Hz(赫兹),他代表CPU数字脉冲信号振荡的频率。
因为同类型计算机的同一指令所需的CPU时钟周期数量是一样的,所以【CPU频率】越高,执行指令速度越快
【CPU的时钟周期】
那可以看到【CPU数字脉冲信号】每隔一小段有一个“节点”,就像一段音频波律的律动点一样,这就是CPU工作的最小时间单位,也就是【CPU的时钟周期】
- 【CPU时钟周期】又是【CPU时钟频率的倒数】,单位是ns(纳秒),1000ns = 1s,当然有的时候基本单位也会用s(秒)来表示
;
提示:
这也说明,【一个指令需要几个时钟周期】只和【时钟周期】有关,而【时钟周期】只和这个计算机的【计算机组织、体系结构、指令集...】等这些有关,跟【时钟频率】是没关系
你这个计算机的结构决定了某个指令是5个时钟周期就只能是5个时钟周期,频率的快慢只能决定这个指令执行的快慢。
打个比方:部队队列要求方队跑步前进听到“立定”之后,只能走4步来停止、立定。而频率是你这四步走得有多快有多慢,听到指令后走四步停下这个规矩是国家军队条令条例规定的,你去印度可能是走一步就停、去阿拉伯可能是走100步停。
;
例题:
【CPU的主频】计算公式:
【CPU的主频】就是【1秒内有多少个时间周期】,或者说【1秒内有多少个振荡周期】,或者说【1秒内有多少个脉冲信号】
;
那么可得:【CPU的主频】= 【1秒】/ 【有几个时间周期】
打比方上面那个图,1s里有12个时间周期,那【CPU的主频】= 1 / 12 Hz,每秒有12个脉冲信号
反推,【1个时间周期】=【1】/【CPU的主频】,二者互为倒数
3)CPI(Circle Per Instruction)
【CPI】是执行一条指令所需要的时间周期数
(不同的指令执行所需要的时间周期数、也就是CPI,是不一样的;即使相同的指令,CPI也会有所变化)
;
;
【执行一条指令的时间】=【CPI】*【CPU时钟周期】
【CPU执行时间】=【程序总指令条数】*【CPI】*【时钟周期】
(因为一个程序包含多条指令嘛)
CPI例题:
某CPU主频为1000Hz,某程序包含100条指令,平均来看指令的CPI=3,那么该程序在该CPU上执行需要多久?
已知CPI=3,也就是1条指令需要3个时钟周期完成,那么有100指令就需要 ——> 100 * 3 = 300个时钟周期
那么因为【1个时间周期】=【1】/【CPU的主频】,所以300个时间周期就需要 ——> 300 * 1/1000 = 3/10 s,也就是0.3 s
;
;
4)IPS(Instruction Per Second)
就是指每1秒执行多少条指令
既然是每秒执行多少指令,而【CPI】是执行一条指令所需要的时间周期数,而【CPU主频】是1秒内有多少个时间周期
;
那么【IPS】=【CPU主频】/【CPI】
打个比方:【CPU主频】是1秒内有4个时间周期,然后【CPI】是一条指令需要2个时间周期,那么【IPS】不就是是【CPU主频】/【CPI】= 4 / 2 = 2,也就是每一秒执行2个指令嘛
;
那么还有两个数量单位【KIPS】【MIPS】
- 【KIPS】表示每秒执行几千条指令?
- 【MIPS】表示每秒执行几百万指令?
例如:2 MIPS = 每秒执行2000000条指令,2 KIPS就是每秒执行2000条指令
;
;
IPS例题:
【FLOPS】
指【每秒能执行多少次浮点数运算】
注意:
1、单纯指代浮点数计算次数的能力,不涉及别的性能。
2、凡是涉及“科学计算”的性能评估,必是跟FLOPS有关,因为科学计算要求计算精度高,所以必要用到浮点数。
- 【KFLOPS】表示每秒执行几千次浮点数运算?
- 【MFLOPS】表示每秒执行几百万次浮点数运算?
- 【GFLOPS】表示每秒执行几十亿次浮点数运算?
- 【TFLOPS】表示每秒执行几万亿次浮点数运算?
- 【PFLOPS】表示每秒执行千万亿次浮点数计算?
- 【京FLOPS】表述每秒执行几亿亿次浮点数计算?
- 【EFLOPS】表述每秒执行几百京次浮点数计算?
- 【ZFLOPS】表示每秒执行几十万京次浮点数计算?
这里K、M、G、T......等的数量单位:
- K = 千 = 10的3次方
- M = 百万 = 10的6次方
- G = 10亿 = 10的9次方
- T = 万亿 = 10的12次方
- P = 千万亿 = 10的15次方
- 京 = 1亿亿 = 10的16次方
- E = 百京 = 10的18次方
- Z = 十万京 = 10的21次方
- 记忆:“KMGT,P京EZ” = “千米干他,普京移宅”
例题:
;
4、基准程序 和 其他专业术语
1)基准程序
是用来测量计算机处理速度的一种实用程序,以便与被测量的计算机性能可以与运行相同程序的其他计算机性能进行比较。(翻译人话:就是像鲁大师那样的测电脑性能的程序)
2)系列机
简言之就是:“具有相同体系结构、使用相同基本指令系统的多个不同型号的计算机的产品系列”
重点是【同一系列不同型号是通用的】(比如Windows 的 X86计算机的一些软件和硬件,也可以放到Windows 的 X64计算机上用)
3)兼容
软件或硬件的通用性,即运行在某个型号计算机系统的硬/软件也可以应用于另一型号的计算机系统时,称这两计算机兼容。
重点是【同一系列不同型号的计算机间通用】
4)固件
就是将程序固化在ROM中组成的部件就叫固件。
重点是【既有软件也有硬件,速度比软件快、灵活性比硬件强,典型的就是BIOS固件】
虽然不是重点,但是建议有兴趣的可以看看这个科普视频,会加深一下印象
【科普】驱动装的好,电脑问题少!驱动和固件,到底是个什么玩意?_哔哩哔哩_bilibili
5)触发器
也不是重点,王道书出过一题,就是一种寄存器的电路,有了这种特殊电路,就可以把一些电荷状态保存到寄存器,达到 “存储数据”、“电脑有了记忆” 的效果
重点就是【寄存器是由触发器构成的】
虽然不是重点,但是建议有兴趣的可以看看这个科普视频,会加深一下印象
CPU中寄存器的原理_哔哩哔哩_bilibili
例题:
6)CPU的寄存器对于用户是否可访问的分类
这个记一下,CPU里的寄存器有两类,一个是对于用户而言“可见”的,一种是“透明不可见”的
用户“可见”的寄存器 | 用户“不可见、透明”的寄存器 |
通用寄存器GDP | 指令寄存器IR |
程序计数器PC | 存储地址寄存器MAR |
状态寄存器PSW | 存储数据寄存器MDR |
累加寄存器ACC | 暂存寄存器 |
例题
注意:
相关文章:
考研408《计算机组成原理》复习笔记,第二章计算机性能
一、计算机各项性能指标 1、计算机系统整体的性能指标: 从宏观上看,整个计算机是由软件硬件共同性能决定的,但是【最主要的决定性的影响】还是来自于【硬件】 因为计算机组成原理主要讲【硬件】,那么我们也仅考虑【硬件性能】 2…...
智能决策支持系统的基本概念与理论体系
决策支持系统是管理科学的一个分支,原本与人工智能属于不同的学科范畴,但自20世纪80年代以来,由于专家系统在许多方面取得了成功,于是人们开始考虑把人工智能技术用于计算机管理中来。在用计算机所进行的各种管理中,如…...
什么是运算符重载
运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型,本质上是函数重载。以下为您详细介绍: 实现原理与方式 - 原理:把指定的运算表达式转化为对运算符函数的调用࿰…...
自定义Dockerfile,发布springboot项目
(1) 上传jar包 把hello项目打成一个可执行的jar包 hello-1.0-SNAPSHOT.jar,把这个jar包上传到linux中 (2) 创建文件,文件名my_hello(就是一个Dockerfile),内容如下 #1.定义父镜像(定义当前工程依赖的环境):…...
什么是多租户系统
随着云计算和 SaaS(Software as a Service)模式的普及,多租户架构(Multi-Tenant Architecture)成为 SaaS 产品设计中的核心模式之一。多租户架构允许多个用户(租户)共享同一套基础设施和应用&am…...
摩尔缠论课程合集完整版核心课程前置课程圈子问答星球圈子摩尔缠论三个阶段
一、教程描述 这是一套摩尔缠论课程合集(完整版),内容非常系统并且极为全面,包括视频、图片和文档等不同文件类型,摩尔缠论共有三个版本,有些类似软件版本迭代,后一版本是前一版本的升级和进化…...
java学习之数据结构:三、八大排序
主要介绍学过的各种排序算法 目录 1.插入排序 1.1直接插入排序 1.2希尔排序 2.选择排序 2.1直接选择排序 2.2堆排序 3.交换排序 3.1冒泡排序 3.2快速排序 4.归并排序 5.基数排序 1.插入排序 1.1直接插入排序 基本思想:就是将待排序的数据按照其元素值的…...
Docker Compose:服务编排:批量管理多个容器
通过docker compose进行容器批量管理:一次性启动四个容器(nginx,tomcat,redis,mysql) (1) 创建docker-compose目录 mkdir ~/docker-compose cd ~/docker-compose (2&…...
微服务设计约束
相较于单体应用,微服务架构在提升开发、部署等环节灵活性的同时,也提升了在运维、监控环节的复杂性。结合实践总结,微服务架构的设计有以下四条设计约束遵循: (1)微服务个体约束 一个设计良好的微服务应用,所完成的功…...
C语言中的自定义类型 —— 结构体.位段.联合体和枚举
自定义类型 1. 前言2. 结构体2.1 结构体的声明2.2 结构体变量的定义和初始化2.3 结构体的特殊声明2.4 结构体的自引用2.5 结构体的内存对齐2.6 修改默认对齐数2.7 结构体传参 3. 位段4. 联合体5. 枚举6. 结言 1. 前言 在C语言中已经为用过户提供了内置类型,如&…...
【序列贪心】摆动序列 / 最长递增子序列 / 递增的三元子序列 / 最长连续递增序列
⭐️个人主页:小羊 ⭐️所属专栏:贪心算法 很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~ 目录 摆动序列最长递增子序列递增的三元子序列最长连续递增序列 摆动序列 摆动序列 贪心策略:统计出所有的极大值和极小…...
从零开发一个B站视频数据统计Chrome插件
从零开发一个B站视频数据统计Chrome插件 前言 B站(哔哩哔哩)作为国内最大的弹幕视频网站之一,视频的播放量、点赞、投币、收藏等数据对于内容创作者和数据分析者来说非常重要。本文将带你一步步实现一个Chrome插件,自动统计并展…...
【Python实战】飞机大战
开发一个飞机大战游戏是Python学习的经典实战项目,尤其适合结合面向对象编程和游戏框架(如Pygame)进行实践。以下是游戏设计的核心考虑因素和模块划分建议: 一、游戏设计核心考虑因素 性能优化 Python游戏需注意帧率控制ÿ…...
WebAPI项目从Newtonsoft.Json迁移到System.Text.Json踩坑备忘
1.控制器层方法返回类型不能为元组 控制器层方法返回类型为元组时,序列化结果为空。 因为元组没有属性只有field,除非使用IncludeFields参数专门指定,否则使用System.Text.Json进行序列化时不会序列化field var options new JsonSerializ…...
人工智能助力工业制造:迈向智能制造的未来
在当今数字化转型的浪潮中,人工智能(AI)技术正逐渐成为推动工业制造领域变革的核心力量。智能制造作为工业 4.0 的重要组成部分,通过将 AI 技术与传统制造工艺深度融合,正在重塑整个生产流程,提高生产效率、…...
影楼精修-露齿笑算法解析
注意,为避免侵权,本文图片均为AIGC生成或网络公开数据; 像素蛋糕-露齿笑 在介绍本文之前,先说一下,其实露齿笑特效,并非像素蛋糕首创,早在几年前,face app就率先推出了这个效果&am…...
【iview】es6变量结构赋值(对象赋值)
变量的解构赋值 以iview的src/index.js中Vue.prototype.$IVIEW改造为例练习下怎么使用变量的解构赋值 原来的写法: const install function(Vue, opts {}) {if (install.installed) return;locale.use(opts.locale);locale.i18n(opts.i18n);Object.keys(iview).fo…...
在Windows系统中使用Docker发布镜像到镜像仓库
在Windows系统中使用Docker发布镜像到镜像仓库的步骤如下: 步骤 1:安装并配置Docker 安装Docker Desktop • 下载Docker Desktop for Windows并安装。 • 确保启用WSL 2或Hyper-V后端(根据系统版本选择)。 验证Docker运行状态 打…...
糖尿病筛查常识---秋浦四郎
糖尿病筛查可以早期发现糖尿病或糖尿病前期(血糖异常但未达到糖尿病标准),以利于及时干预,预防并发症。因为许多人患上糖尿病时没有明显症状,但已经开始对身体造成损害,有了明显糖尿病症状才检查发现糖尿病…...
CSS 预处理器 Sass
目录 Sass 一、Sass 是什么? 二、核心功能详解 1. 变量(Variables) 2. 嵌套(Nesting) 3. 混合宏(Mixins) 4. 继承(Inheritance) 5. 运算(Operations&…...
Mybatisplus:一些常用功能
自动驼峰 mybatis-plus:configuration:# 开启驼峰命名规则,默认true开启map-underscore-to-camel-case: true# 控制台日志打印,便于查看SQLlog-impl: org.apache.ibatis.logging.stdout.StdOutImpl TableName 作用:表名注解,标识…...
Golang WaitGroup 用法 源码阅读笔记
使用 sync.WaitGroup可以用来阻塞等待一组并发任务完成 下面是如何使用sync.WaitGroup的使用 最重要的就是不能并发调用Add()和Wait() var wg sync.WaitGroupfor ... {wg.Add(1) // 不能和wg.Wait()并发执行go func() {// 不能在启动的函数里面执行wg.Add(), 否则会panicde…...
第二章:一致性基础 A Primer on Memory Consistency and Cache Coherence - 2nd Edition
在本章中,我们将介绍足够多的缓存一致性知识,以便理解一致性模型是如何与缓存相互作用的。我们在 2.1 节首先给出在本入门教程中所考虑的系统模型。为了简化本章以及后续章节的阐述,我们选择了尽可能简单的系统模型,该模型足以说明…...
C++类_移动构造函数
std::move 的主要用途是在对象所有权转移时,触发移动构造函数或移动赋值运算符,避免不必要的深拷贝,提升性能。 移动构造函数 和 移动赋值运算符, std::move转换为右值,匹配到移动构造函数和移动赋值运算符。…...
Spring AI 实战:第一章、Spring AI入门之DeepSeek调用
引言:当Spring遇上AI,会擦出怎样的火花? 作为一名Java开发者,是否曾经眼红Python阵营那些花里胡哨的AI应用?是否在对接各种大模型API时,被五花八门的接口规范搞得头大?好消息是,Spr…...
fastapi+vue中的用户权限管理设计
数据库设计:RBAC数据模型 这是一个典型的基于SQLAlchemy的RBAC权限系统数据模型实现,各模型分工明确,共同构成完整的权限管理系统。 图解说明: 实体关系: 用户(USER)和角色(ROLE)通过 USER_ROLE 中间表实现多对多关系…...
Space Engineers 太空工程师 [DLC 解锁] [Steam] [Windows]
Space Engineers 太空工程师 [DLC 解锁] [Steam] [Windows] 需要有游戏正版基础本体,安装路径不能带有中文,或其它非常规拉丁字符; DLC 版本 至最新全部 DLC 后续可能无法及时更新文章,具体最新版本见下载文件说明 DLC 解锁列表&…...
随机变量数字特征
主要介绍一维随机变量期望和方差、二维随机变量期望和方差、以及协方差相关公式,及推导。 一维随机变量 以一个抛硬币的场景作为例子,如下: 抛掷两枚均匀硬币,如果两枚都是正面向上,则赢得2元,否则就输掉…...
C++总结01-类型相关
一、数据存储 1.程序数据段 • 静态(全局)数据区:全局变量、静态变量 • 堆内存:程序员手动分配、手动释放 • 栈内存:编译器自动分配、自动释放 • 常量区:编译时大小、值确定不可修改 2.程序代码段 •…...
【多线程】七、POSIX信号量 环形队列的生产者消费者模型
文章目录 Ⅰ. 信号量一、POSIX 信号量的概念二、POSIX 信号量的类型区别三、POSIX 信号量与 SystemV 信号量的区别Ⅱ. 线程信号量基本原理一、为什么要引入信号量❓二、PV 操作三、POSIX 信号量的实现原理四、CAS操作介绍Ⅲ. POSIX未命名信号量接口一、初始化无名信号量二、销毁…...
二维码批量识别—混乱多张二维码识别-物品分拣—-未来之窗-仙盟创梦IDE
仙盟模型 用途 精准分拣:快速准确识别物品上复杂或多个二维码,依据码中信息(如目的地、品类等)实现物品自动化分拣,提高分拣效率与准确性。库存管理:识别入库、出库物品二维码,更新库存数据&am…...
《TensorFlow 与 TensorFlow Lite:协同驱动 AI 应用全景》
《TensorFlow 与 TensorFlow Lite:协同驱动 AI 应用全景》 摘要 :在机器学习技术浪潮中,TensorFlow 与 TensorFlow Lite 作为 Google 技术栈的核心组件,分别占据云端训练与端侧部署的关键位置。本文将系统梳理二者架构特性、功能…...
Spring AI 实战:第三章、Spring AI结构化输出之告别杂乱无章
引言:当程序员遇上剧荒 “周末看什么?” 这个看似简单的问题,往往能让我们在各大影视平台间反复横跳半小时,最后无奈选择重刷《老友记》。本期让我们用技术解决这个"世纪难题":让大模型成为你的私人影视推荐…...
ros2 humble 控制真实机械臂(以lerobot为例)
基础版 0.确保串口访问权限 sudo chmod 666 /dev/ttyARM0 # 确保串口访问权限 1.下载 lerobot 驱动功能包 git clone https://gitee.com/kong-yue1/lerobot_devices.git 2.编写控制节点(完整代码) 主要功能是与 Feetech 电机总线进行通信&#…...
REINFORCE蒙特卡罗策略梯度算法详解:python从零实现
🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创…...
模拟SIP终端向Freeswitch注册用户
1、简介 使用go语言编写一个程序,模拟SIP-T58终端在Freeswitch上注册用户 2、思路 以客户端向服务端Freeswitch发起REGISTER请求,告知服务器当前的联系地址构造SIP REGISTER请求 创建UDP连接,连接到Freeswitch的5060端口发送初始的REGISTER请…...
Elasticsearch 中的索引模板:如何使用可组合模板
作者:来自 Elastic Kofi Bartlett 探索可组合模板以及如何创建它们。 更多阅读: Elasticsearch:可组合的 Index templates - 7.8 版本之后 想获得 Elastic 认证吗?查看下一期 Elasticsearch Engineer 培训的时间! El…...
一篇文章看懂时间同步服务
Linux 系统时间与时区管理 一、时间与时钟类型 时钟类型说明管理工具系统时钟由 Linux 内核维护的软件时钟,基于时区配置显示时间timedatectl硬件时钟 (RTC)主板上的物理时钟,通常以 UTC 或本地时间存储,用于系统启动时初始化时间hwclock …...
Mysql常用语句汇总
Mysql语句分类 DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)DML: 数据操作语言,用来对数据库表中的数据进行增删改DQL: 数据查询语言,用来查询数据库中表的记录DCL: 数据控制语言,用来创建数据…...
迭代器的思想和实现细节
1. 迭代器的本质 迭代器是一种行为类似指针的对象,它可能是指针(如 std::vector 的迭代器),也可能是封装了指针的类(如 std::list 的迭代器)。如果是指针那天然就可以用下面的运算,如果是类&am…...
[Vue]编程式导航
在 Vue 中,编程式导航是通过 JavaScript 代码(而非 <router-link> 标签)动态控制路由跳转的核心方式。这个方法依赖于 Vue Router 提供的 API,能更灵活地处理复杂场景(如异步操作、条件跳转等)。 一、…...
使用Node.js搭建https服务器
一、引言 https是是http的安全版本,在http的基础上通过传输加密和身份认证保证了传输过程中的安全性。可以认为:https http tls/ssl。本文讲述使用Node.js搭建https服务器的方法。 二、编译OpenSSL 按照《Openssl在Linux下编译/交叉编译》࿰…...
网络安全:sql注入练习靶场——sqli_labs安装保姆级教程
网络安全:sql注入练习靶场——sqli_labs安装保姆级教程 前言 sqli-labs靶场是一个开源的sql注入练习的综合靶场,包含大部分sql注入漏洞以及注入方式 网络安全学习者可以通过在sqli-labs靶场练习提升对sql注入的理解,以及学习各种绕过姿势。…...
rfsoc petalinux适配调试记录
1。安装虚拟机 2.设置共享文件夹 https://xinzhi.wenda.so.com/a/1668239544201149先设置文件夹路径 vmware 12 下安装 ubuntu 16.04 后,按往常的惯例安装 vmware-tools,安装时提示建议使用 open-vm-tools,于是放弃 vmware-tools 的安装&am…...
Windows下编译WebRTC源码
一、开发环境要求 准备一台64位的win10或win11(我用的是win11)电脑。最好是一台纯净的、没有安装过其它软件的Windows主机,避免已安装的软件和库对编译造成影响。 然后最好预留超过100G的硬盘空间。因为编译WebRTC时会产生大量的临时文件需…...
【vscode】.dart文件没有错误波浪线
解决方法: 新建一个文件夹,在vscode里打开这个文件夹 在这个文件夹里新建.dart文件后打开即可出现错误波浪线...
OpenharmonyOS+RK3568,【编译烧录】
文章目录 1. 摘要 ✨2. 代码下载 📩3. 编译 🖥️4. 修改&适配 ✂️4.1 编译框架基本概念4.2 vendor & device 目录4.3 内核编译4.3.1 如何修改、适配自己的开发板? 4.4 修改外设驱动 5. 烧录&验证 📋参考 1. 摘要 ✨ …...
从零开始理解 C++ 后端编程中的分布式系统
一、什么是“分布式”? 简单来说,分布式系统就是由“多个计算机(或服务器)”组成的一个大系统,它们通过网络协作完成某个任务,就像一个“团队合作”一样。 想象你开了一家餐馆,最初只有 一个厨房 和 一个服务员,所有订单都在这里处理。随着生意变好,你需要: 开分店…...
基于SpringBoot的篮球竞赛预约平台设计与实现
1.1 研究背景 科学技术日新月异的如今,计算机在生活各个领域都占有重要的作用,尤其在信息管理方面,在这样的大背景下,学习计算机知识不仅仅是为了掌握一种技能,更重要的是能够让它真正地使用到实践中去,以…...
具身系列——PPO算法实现CartPole游戏(强化学习)
完整代码参考: https://gitee.com/chencib/ailib/blob/master/rl/ppo_cartpole.py 执行结果: 部分训练得分: (sd) D:\Dev\traditional_nn\feiai\test\rl>python ppo_cartpole_v2_succeed.py Ep: 0 | Reward: 23.0 | Running: 2…...