Oracle 内存优化
Oracle 的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是 SGA和 PGA(process global area or private global area)。对于 SGA 区域内的内存来说,是共享的全局的。在 UNIX 上,必须为 Oracle 设置共享内存段(可以是一个或者多个),因为 Oracle 在UNIX 上是多进程;而在 WINDOWS 上 Oracle 是单进程(多个线程),所以不用设置共享内存段。PGA 是属于进程(线程)私有的区域。在 Oracle 使用共享服务器模式下,PGA中的一部分,也就是 UGA 会被放入共享内存 large_pool_size 中。
对于 SGA 部分,通过查询语句可以看到,代码如下:
SQL> select * from v$sga;
执行后如图14-9所示。
图14-9查询SGA使用情况
Fixed Size: Oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了 SGA 各部分组件的信息,可以看作引导建立 SGA 的区域。
Variable Size : 包含了 shared_pool_size、java_pool_size、large_pool_size 等内存设置。
Database Buffers : 指数据缓冲区。 在 9i 中 包 含 db_cache_size db_keep_cache_size、db_recycle_cache_size、db_nk_cache_size。
Redo Buffers : 指日志缓冲区,在这里说明一点的是,对于 v p a r a m e t e r 、 v parameter、v parameter、vsgastat、v s g a 查询值可能不一样。 v sga 查询值可能不一样。v sga查询值可能不一样。vparameter 里面的值,是指用户在初始化参数文件里面设置的值,v s g a s t a t 是 O r a c l e 实际分配的日志缓冲区大小 ( 因为缓冲区的分配值实际上是离散的,也不是以 b l o c k 为最小单位进行分配的 ) , v sgastat 是 Oracle 实际分配的日志缓冲区大小(因为缓冲区的分配值实际上是离散的,也不是以 block 为最小单位进行分配的), v sgastat是Oracle实际分配的日志缓冲区大小(因为缓冲区的分配值实际上是离散的,也不是以block为最小单位进行分配的),vsga 里面查询的值,是在 Oracle 分配了日志缓冲区后,为了保护日志缓冲区,设置了一些保护页,发现保护页大小大约是 11k(不同环境可能不一样)。
14.7.1SGA内参数及设置
(1)Log_buffer
对于日志缓冲区的大小设置,通常没有过多的建议,因为参考 LGWR 写的触发条件之后,发现通常超过 3M 意义不是很大。作为一个正式系统,可能考虑先设置这部分为 log_buffer=3到5M 大小,然后针对具体情况再调整。
log_buffer是Redo log的buffer。因此在这里必须要了解Redo Log的触发事件(LGWR)
当redo log buffer的容量达到1/3,设定的写redo log时间间隔到达,一般为3秒钟。
redo log buffer中重做日志容量到达1M,在DBWn将缓冲区中的数据写入到数据文件之前每一次提交事务。上面的结论可以换句话说:log_buffer中的内容满1/3,缓存刷新一次。最长间隔3秒钟,缓存刷新一次。log_buffer中的数据到达1M,缓存刷新一次。
每次提交一个事务,缓存刷新一次
(2)Large_pool_size
对于大缓冲池的设置,假如不使用 MTS,建议在 20-30M 足够了。这部分主要用来保存并行查询时候的一些信息,还有就是 RMAN 在备份的时候可能会使用到。
如果设置了MTS,则由于 UGA 部分要移入这里,则需要具体根据 server process 数量和相关会话内存参数的设置来综合考虑这部分大小的设置。
(3)Java_pool_size
假如数据库没有使用 JAVA,一般保留 10—20M 大小足够。事实上可以更少,甚至最少只需要 32k,但具体跟安装数据库的时候的组件相关。
(4)Shared_pool_size
Shared_pool_size的开销通常应该维持在300M 以内。除非系统使用了大量的存储过程、函数、包。比如 Oracle ERP 这样的应用,可能会达到 500M 甚至更高。于是假定一个 1G 内存的系统,可能考虑设置该参数为 100M,2G 的系统考虑设置为 150M,8G 的系统可以考虑设置为 200到300M。
(5)SGA_MAX_SIZE
SGA区包括了各种缓冲区和内存池,而大部分都可以通过特定的参数来指定他们的大小。但是作为一个昂贵的资源,一个系统的物理内存大小是有限。
尽管对于CPU的内存寻址来说,是无需关系实际的物理内存大小的(关于这一点,后面会做详细的介绍),但是过多的使用虚拟内存导致page in/out,
会大大影响系统的性能,甚至可能会导致系统crash。所以需要有一个参数来控制SGA使用虚拟内存的最大大小,这个参数就是SGA_MAX_SIZE。当实例启动后,各个内存区只分配实例所需要的最小大小,在随后的运行过程中,再根据需要扩展他们的大小,而他们的总和大小受到了SGA_MAX_SIZE的限制。
对于OLTP系统,内存大小见14-1表。
表14-1内存参数
系统内存 SGA_MAX_SIZE值
1G 400-500M
2G 1G
4G 2500M
8G 5G
(6)PRE_PAGE_SGA
Oracle实例启动时,会只载入各个内存区最小的大小。而其他SGA内存只作为虚拟内存分配,只有当进程touch到相应的页时,才会置换到物理内存中。但希望实例一启动后,所有SGA都分配到物理内存。这时就可以通过设置PRE_PAGE_SGA参数来达到目的了。这个参数的默认值为FALSE,即不将全部SGA置入物理内存中。当设置为TRUE时,实例启动会将全部SGA置入物理内存中。它可以使实例启动达到它的最大性能状态,但是,启动时间也会更长(因为为了使所有SGA都置入物理内存中,Oracle进程需要touch所有的SGA页)。
(7)LOCK_SGA
为了保证SGA都被锁定在物理内存中,而不必页入/页出,可以通过参数LOCK_SGA来控制。这个参数默认值为FALSE,当指定为TRUE时,可以将全部SGA都锁定在物理内存中。当然有些系统不支持内存锁定,这个参数也就无效了。
(8)SGA_TARGET
这里要介绍的时Oracle10g中引入的一个非常重要的参数。在10g之前,SGA的各个内存区的大小都需要通过各自的参数指定,并且都无法超过参数指定大小的值,尽管他们之和可能并没有达到SGA的最大限制。此外,一旦分配后,各个区的内存只能给本区使用,相互之间是不能共享的。
拿SGA中两个最重要的内存区Buffer Cache和Shared Pool来说,它们两个对实例的性能影响最大,但是就有这样的矛盾存在:在内存资源有限的情况下,某些时候数据被cache的需求非常大,了提高buffer hit,就需要增加Buffer Cache大小。但由于SGA有限,只能从其他区抢过来,增加Buffer Cache;而有时又有大块的PLSQL代码被解析驻入内存中,导致Shared Pool不足,甚至出现4031错误,又需要扩大Shared Pool,这时可能又需要人为干预,从Buffer Cache中将内存夺回来。 有了这个新的特性后,SGA中的这种内存矛盾就迎刃而解了。这一特性被称为自动共享内存管理。
而控制这一特性的,也就仅仅是这一个参数SGA_TARGE。设置这个参数后,就不需要为每个内存区来指定大小了。SGA_TARGET指定了SGA可以使用的最大内存大小,
而SGA中各个内存的大小由Oracle自行控制,不需要人为指定。Oracle可以随时调节各个区域的大小,使之达到系统性能最佳状态的个最合理大小,并且控制他们之和在SGA_TARGET指定的值之内。一旦给SGA_TARGET指定值后(默认为0,即没有启动ASMM),就自动启动了ASMM特性。
14.7.2ORALCE内存调整
当项目的生产环境出现性能问题,通过判断,对内存参数进行调整。
(1)检查Oracle实例的Library Cache命中率。标准:Library Cach一般是大于99%
检查方式,代码如下:
select 1-(sum(reloads)/sum(pins)) “Library cache Hit Ratio” from v$librarycache;
执行后如图14-10所示。
图14-10查询Library Cache命中率
处理措施:如果Library cache Hit Ratio的值低于99%,应调高shared_pool_size的大小。通过sqlplus连接数据库执行如下命令,调整shared_pool_size的大小,代码如下:
SQL>alter system flush shared_pool;
SQL>alter system set shared_pool_size=设定值 scope=spfile;
(2)检查Oracle实例的Data Buffer(数据缓冲区)命中率。
标准:一般是大于90%
检查方式,代码如下:
select 1 - (phy.value / (cur.value + con.value)) “HIT RATIO”
from v s y s s t a t c u r , v sysstat cur, v sysstatcur,vsysstat con, v$sysstat phy
where cur.name = ‘db block gets’
and con.name = ‘consistent gets’
and phy.name = ‘physical reads’
执行后如图14-11所示。
图14-11查看据缓冲区命中率
处理措施:如果HIT RATIO的值低于90%,应调高db_cache_size的大小。
调整db_cache_size的大小,代码如下:
SQL>alter system set db_cache_size=设定值 scope=spfile
(3)检查Oracle实例的Dictionary Cache命中率,一般是大于95%
检查方式,代码如下:
select 1 - (sum(getmisses) / sum(gets)) “Data Dictionary Hit Ratio”
from v r o w c a c h e ; 处理措施 : 如果 D a t a D i c t i o n a r y H i t R a t i o 的值低于 95 S Q L > a l t e r s y s t e m f l u s h s h a r e d p o o l ; S Q L > a l t e r s y s t e m s e t s h a r e d p o o l s i z e = 设定值 s c o p e = s p f i l e ; ( 4 ) 检查 O r a c l e 实例的 L o g B u f f e r 命中率,一般是小于 1 检查方式,代码如下: s e l e c t ( r e q . v a l u e ∗ 5000 ) / e n t r i e s . v a l u e " R a t i o " f r o m v rowcache; 处理措施:如果Data Dictionary Hit Ratio的值低于95%,应调高shared_pool_size的大小。通过sqlplus连接数据库执行如下命令,调整shared_pool_size大小代码如下: SQL>alter system flush shared_pool; SQL>alter system set shared_pool_size=设定值 scope=spfile; (4)检查Oracle实例的Log Buffer命中率,一般是小于1%。 检查方式,代码如下: select (req.value * 5000) / entries.value "Ratio" from v rowcache;处理措施:如果DataDictionaryHitRatio的值低于95SQL>altersystemflushsharedpool;SQL>altersystemsetsharedpoolsize=设定值scope=spfile;(4)检查Oracle实例的LogBuffer命中率,一般是小于1检查方式,代码如下:select(req.value∗5000)/entries.value"Ratio"fromvsysstat req, v s y s s t a t e n t r i e s w h e r e r e q . n a m e = ′ r e d o l o g s p a c e r e q u e s t s ′ a n d e n t r i e s . n a m e = ′ r e d o e n t r i e s ′ ; 处理措施 : 如果 R a t i o 高于 1 %,应调高 l o g b u f f e r 的大小。通过 s q l p l u s 连接数据库执行如下命令,调整 l o g b u f f e r 的大小代码如下: S Q L > a l t e r s y s t e m s e t l o g b u f f e r = 设定值 s c o p e = s p f i l e ; ( 5 ) 检查 u n d o r e t e n t i o n : : u n d o r e t e n t i o n 的值必须大于 m a x ( m a x q u e r y l e n ) 的值检查方式,代码如下: c o l u n d o r e t e n t i o n f o r m a t a 30 s e l e c t v a l u e " u n d o r e t e n t i o n " f r o m v sysstat entries where req.name = 'redo log space requests' and entries.name = 'redo entries'; 处理措施:如果Ratio高于1%,应调高log_buffer的大小。通过sqlplus连接数据库执行如下命令,调整log_buffer的大小代码如下: SQL>alter system set log_buffer=设定值 scope=spfile; (5)检查undo_retention::undo_retention 的值必须大于max(maxquerylen)的值 检查方式,代码如下: col undo_retention format a30 select value "undo_retention" from v sysstatentrieswherereq.name=′redologspacerequests′andentries.name=′redoentries′;处理措施:如果Ratio高于1%,应调高logbuffer的大小。通过sqlplus连接数据库执行如下命令,调整logbuffer的大小代码如下:SQL>altersystemsetlogbuffer=设定值scope=spfile;(5)检查undoretention::undoretention的值必须大于max(maxquerylen)的值检查方式,代码如下:colundoretentionformata30selectvalue"undoretention"fromvparameter where name=‘undo_retention’;
select max(maxquerylen) From v$undostat Where begin_time>sysdate-(1/4);
处理措施:如果不满足要求,需要调高undo_retention 的值。
调整undo_retention 的大小,代码如下:
SQL>alter system set undo_retention= 设定值 scope=spfile;
对于 Oracle 来说,存在着 32bit 与 64bit 的问题。这个问题影响到的主要是 SGA 的大小。在 32bit 的数据库下,通常 Oracle 只能使用不超过 1.7G 的内存,即使拥有12G 的内存,但是却只能使用 1.7G,这是一个莫大的遗憾。假如安装 64bit 的数据库,就可以使用很大的内存,几乎不可能达到上限。但是 64bit 的数据库必须安装在 64bit 的操作系统上。
相关文章:
Oracle 内存优化
Oracle 的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是 SGA和 PGA(process global area or private global area)。对于 SGA 区域内的内存来说,是共享的全局的。在 UNIX 上,必须为 Oracle 设置共享内存段(可以是一个或者多…...
算法题(149):矩阵消除游戏
审题: 本题需要我们找到消除矩阵行与列后可以获得的最大权值 思路: 方法一:贪心二进制枚举 这里的矩阵消除时,行与列的消除会互相影响,所以如果我们先统计所有行和列的总和,然后选择消除最大的那一行/列&am…...
AI:NLP 情感分析
💬 从零开始掌握情感分析:NLP 初学者实战指南 本文适合自然语言处理(NLP)入门者,聚焦于最热门应用之一——情感分析(Sentiment Analysis)。无论你是学生、工程师,还是数据爱好者,都可以通过本文了解情感分析的原理、方法和实现技巧。 🧠 一、什么是情感分析? 情感…...
LearnOpenGL---着色器
着色器的例子 文章目录 着色器的例子1.颜色变化的三角形2.构造三个顶点颜色不同的一个三角形 1.颜色变化的三角形 #include <glad/glad.h> #include <GLFW/glfw3.h>#include <iostream> #include <cmath>void framebuffer_size_callback(GLFWwindow* …...
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 13.几何着色器(一)修改顶点
几何着色器 以下是OpenGL图像管线的主要阶段: 几何着色器(Geometry Shader) 几何着色器是OpenGL管线中的一个可选阶段,位于顶点着色器和片段着色器之间。它能够动态地生成或修改图元(primitives)。 主…...
如何利用 Java 爬虫获得某书笔记详情:实战指南
在知识分享和学习的领域,许多平台提供了丰富的书籍笔记和学习资源。通过 Java 爬虫技术,我们可以高效地获取这些笔记的详细信息,以便进行进一步的分析和整理。本文将详细介绍如何利用 Java 爬虫获取某书笔记详情,并提供完整的代码…...
【关联git本地仓库,上传项目到github】
目录 1.下载git2.绑定用户3.git本地与远程仓库交互4.github项目创建5.上传本地项目到github6.完结撒花❀❀❀!!! 1.下载git git下载地址:https://git-scm.com/downloads 下载安装后创建快捷地址:(此处比较…...
计算机科技笔记: 容错计算机设计05 n模冗余系统 TMR 三模冗余系统
NMR(N-Modular Redundancy,N 模冗余)是一种通用的容错设计架构,通过引入 N 个冗余模块(N ≥ 3 且为奇数),并采用多数投票机制,来提升系统的容错能力与可靠性。单个模块如果可靠性小于…...
配置代理服务器访问github、google
配置代理服务器访问github、google 背景与原理配置环境配置步骤云主机配置Windows客户端创建SSH隧道安装 Windows 内置 OpenSSHssh config 配置文件创建动态代理隧道 浏览器代理设置 验证浏览器访问google、githubssh 访问github 背景与原理 由于网络政策限制,中国…...
Java API学习笔记
一.类 1. String 类 不可变性:String对象创建后不可修改,每次操作返回新对象 String str "Hello"; str.length(); str.charAt(0); str.substring(1, 4); str.indexOf("l"); str.equals("hel…...
C++ map容器: 插入操作
1. map插入操作基础 map是C STL中的关联容器,存储键值对(key-value pairs)。插入元素时有四种主要方式,各有特点: 1.1 头文件与声明 #include <map> using namespace std;map<int, string> mapStu; // 键为int,值…...
Linux SSH 远程连接全攻略:从加密原理到实战配置(含图解)
一、SSH 加密体系核心理论 (一)对称加密与非对称加密对比解析 1. 加密算法分类与应用场景 类型代表算法密钥数量加密速度安全性特点典型用途对称加密AES、3DES1 个★★★★☆密钥传输风险高会话数据加密非对称加密RSA、ECC2 个★★☆☆☆公钥可公开&a…...
项目制作流程
一、使用 CRA 创建项目 npx create-react-app name 二、按照业务规范整理项目目录 (重点src目录) 三、安装插件 npm install sass -Dnpm install antd --savenpm install react-router-dom 四、配置基础路由 Router 1. 安装路由包 react-router-dom …...
ctr查看镜像
# 拉取镜像到 k8s.io 命名空间 sudo nerdctl --namespace k8s.io pull nginx:1.23.4 # 验证镜像是否已下载 sudo nerdctl --namespace k8s.io images 下载镜像到k8s.io名称空间下 nerdctl --namespace k8s.io pull zookeeper:3.6.2 sudo ctr image pull --namespace k8s.io …...
【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析
【深度学习基础】从感知机到多层神经网络:模型原理、结构与计算过程全解析 1. 引言 神经网络的重要性: 作为人工智能的核心技术之一,神经网络通过模拟人脑神经元的工作机制,成为解决复杂模式识别、预测和决策任务的利器。从图像分…...
discuz X3.5批量新建用户
<?php define(IN_DISCUZ, true); require ./source/class/class_core.php; // 确保管理员权限(可选,增加安全性)删除这一段加粗则可以直接使用. if ($_G[adminid] ! 1) { exit(Access denied. Only admin allowed.); } C::app()->…...
symfonos: 1靶场
symfonos: 1 来自 <https://www.vulnhub.com/entry/symfonos-1,322/> 1,将两台虚拟机网络连接都改为NAT模式 2,攻击机上做namp局域网扫描发现靶机 nmap -sn 192.168.23.0/24 那么攻击机IP为192.168.23.182,靶场IP192.168.23.252 3&…...
C# String 格式说明符
标准格式说明符数字格式说明符C 或 c:货币格式D 或 d:十进制数字格式E 或 e:科学计数法格式。F 或 f:固定点格式G 或 g:常规格式N 或 n:数字格式P 或 p:百分比格式X 或 x:十六进制格…...
Python高级特性深度解析:从熟练到精通的跃迁之路
Python高级特性深度解析:从熟练到精通的跃迁之路 引言 对于已经掌握Python基础语法的开发者而言,如何突破瓶颈进入高手行列?本文将从Python的高级特性入手,深入剖析那些能让代码更优雅、效率更高的技术点,助你完成从…...
【微信小程序 + 高德地图API 】键入关键字搜索地址,获取经纬度等
前言 又到熟悉的前言,接到个需求,要引入高德地图api,我就记录一下,要是有帮助记得点赞、收藏、关注😁。 后续有时间会慢慢完善一些文章:(画饼时间) map组件自定义气泡、mark标记点…...
贪心、分治和回溯算法
1. 贪心算法 1.1. 贪心算法的概念 定义:在求解过程中,始终做出当前状态下看起来“最优”的选择,不回退。核心思想:每一步都选择当前最优解,期望最后得到全局最优解。 适用问题的特征: 问题可以分解成多个…...
window自带截图快捷键
Win Shift S:按此组合键后,会出现截图模式选择框,可选择矩形截图、任意形状截图、窗口截图和全屏幕截图,然后使用 “Ctrl V” 粘贴截图内容...
简单使用Slidev和PPTist
简单使用Slidev和PPTist 1 简介 前端PPT制作有很多优秀的工具包,例如:Slidev、revealjs、PPTist等,Slidev对Markdown格式支持较好,适合与大模型结合使用,选哟二次封装;revealjs适合做数据切换,…...
1.2.2
某智慧养老平台的心率监测模块目前存在数据准确性不高、异常预警响应慢等问题,影响了老年人健康监测的体验和服务质量。作为人工智能训练师,你需要结合业务知识和人工智能技术,对该模块进行优化设计与实现。 (1)列出心…...
LeeCode 101.对称二叉树
给你一个二叉树的根节点 root , 检查它是否轴对称。 提示: 树中节点数目在范围 [1, 1000] 内-100 < Node.val < 100 进阶:你可以运用递归和迭代两种方法解决这个问题吗? 答案 && 测试代码: #include &…...
面向GIS的Android studio移动开发(二)--在地图上绘制电子围栏
电子围栏,校园跑的常客,也是定位打卡必不可少的东西 主要代码: 创建电子围栏代码 // 添加多边形地理围栏(兼容2023版SDK)private void addPolygon(String fenceName, List<LatLng> points) {if (points null…...
《从零开始:Spring Cloud Eureka 配置与服务注册全流程》
关于Eureka的学习,主要学习如何搭建Eureka,将order-service和product-service都注册到Eureka。 1.为什么使用Eureka? 我在实现一个查询订单功能时,希望可以根据订单中productId去获取对应商品的详细信息,但是产品服务和订单服…...
能力验证及大练兵活动第一期
计算机 请根据计算机检材,回答以下问题: (10道题,共19.0分) 1. 计算机中曾挂载的Bitlocker加密分区的恢复密钥后6位为?(答案格式:6位数字) (1.0分) 答案:700755 2. 请写出曾远程连…...
TASK03【Datawhale 组队学习】搭建向量知识库
文章目录 向量及向量知识库词向量与向量向量数据库 数据处理数据清洗文档分割 搭建并使用向量数据库 向量及向量知识库 词向量与向量 词向量(word embedding)是一种以单词为单位将每个单词转化为实数向量的技术。词向量背后的主要想理念是相似或相关的…...
ProfibusDP转ModbusRTU的实用攻略
ProfibusDP转ModbusRTU的实用攻略 在工业自动化领域中,Profibus DP和Modbus RTU是两种常见的通信协议。 Profibus DP是一种广泛应用于过程控制和工厂自动化的现场总线标准,具有高实时性和可靠性。 而Modbus RTU则是一种串行通信协议,常用于…...
基于开源AI智能名片链动2+1模式S2B2C商城小程序源码的去中心化商业扩散研究
摘要:本文探讨在去中心化商业趋势下,开源AI智能名片链动21模式S2B2C商城小程序源码如何助力企业挖掘数据价值、打破信息孤岛,实现商业高效扩散。通过分析该技术组合的架构与功能,结合实际案例,揭示其在用户关系拓展、流…...
iOS 工厂模式
iOS 工厂模式 文章目录 iOS 工厂模式前言工厂模式简单工厂案例场景分析苹果类优点缺点 小结 工厂模式客户端调用**优点****缺点** 抽象工厂模式三个模式对比 前言 笔者之前学习了有关于设计模式的六大原则,之前简单了解过这个工厂模式,今天主要是重新学习一下这个模式,正式系统…...
LaTeX OCR - 数学公式识别系统
文章目录 一、关于 LaTeX OCR1、项目概览架构图2、相关链接资源3、功能特性 二、安装配置基础环境要求Linux 安装Mac 安装 三、使用指南1、快速训练(小数据集)2、完整训练(大数据集) 四、可视化功能训练过程可视化预测过程可视化 …...
Go 语言即时通讯系统开发日志-日志day2-5:架构设计与日志封装
Go语言即时通讯系统开发日志day2 计划:学习go中MySQL,Redis的使用,使用MySQL和Redis完成一个单聊demo。 总结:现在每天下午用来开发这个项目,如果有课的话可能学习时间只有3-4个小时,再加上今天的学习效率不…...
@JsonProperty和@JSONField 使用
JsonProperty和JSONField注解的区别 1.底层框架不同 JsonProperty 是Jackson实现的 JSONField 是fastjson实现的 2.用法不同 (1)bean序列化为Json: JsonProperty: ObjectMapper().writeValueAsString(Object value) JSONField&…...
从代码学习深度学习 - 近似训练 PyTorch版
文章目录 前言负采样 (Negative Sampling)层序Softmax (Hierarchical Softmax)代码示例总结前言 在自然语言处理(NLP)领域,词嵌入(Word Embeddings)技术如Word2Vec(包括Skip-gram和CBOW模型)已经成为一项基础且强大的工具。它们能够将词语映射到低维稠密向量空间,使得…...
代码上传gitte仓库
把代码push上去就行...
系统架构设计(十四):解释器风格
概念 解释器风格是一种将程序的每个语句逐条读取并解释执行的体系结构风格。程序在运行时不会先被编译为机器码,而是动态地由解释器分析并执行其语义。 典型应用:Python 解释器、JavaScript 引擎、Bash Shell、SQL 引擎。 组成结构 解释器风格系统的…...
掌握LINQ:查询语法与方法语法全解析
文章目录 引言1. 查询语法 vs 方法语法1.1 查询语法 (Query Syntax)1.2 方法语法 (Method Syntax)1.3 两种语法的比较 2. 基本的 LINQ 查询结构2.1 数据源2.2 查询操作2.3 查询执行 3. 查询表达式中的关键字3.1 基本关键字fromwhereselectorderbygroup byjoin 3.2 其他常用关键…...
Go 后端中双 token 的实现模板
下面是一个典型的 Go 后端双 Token 认证机制 实现模板,使用 Gin 框架 JWT Redis,结构清晰、可拓展,适合实战开发。 项目结构建议 /utils├── jwt.go // Access & Refresh token 的生成和解析├── claims.go // 从请求…...
GESP编程能力等级认证C++3级1-数组1
1 GESP编程能力等级认证C3级 1.1 GESP简介 GESP是CCF 编程能力等级认证的简称,它为青少年计算机和编程学习者提供学业能力验证的规则和平台。GESP 覆盖中小学阶段,符合年龄条件的青少年均可参加认证。 1.2 GESP的分级 C 编程测试划分为一至八级&…...
FreeRTOS “探究任务调度机制魅力”
引入 现如今随着单片机的资源越来越多,主频越来越高,在面临更复杂的功能实现以及对MCU性能的充分压榨,会RTOS已经成为一个必要的技能,新手刚开始学习的时候就很好奇“为什么代码可以放到两个循环里同时运行?”。接下来…...
BGP策略实验练习
要求: 1、使用PreVal策略,确保R4通过R2到达192.168.10.0/24 2、使用AS_Path策略,确保R4通过R3到达192.168.11.0/24 3、配置MED策略,确保R4到达R3到达192.168.11.0/24 4、使用Local Preference策略,确保R1通过R2到达192…...
Office 中 VBE 的共同特点与区别
1. Excel VBE 核心对象 #mermaid-svg-IklDO11Hu656bdGS {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IklDO11Hu656bdGS .error-icon{fill:#552222;}#mermaid-svg-IklDO11Hu656bdGS .error-text{fill:#552222;stro…...
Linux虚拟文件系统(1)
1 虚拟文件系统(VFS) 虚拟文件系统(Virtual File System, VFS)作为内核的子系统。,它为用户空间的应用程序提供了一个统一的文件系统接口。通过VFS,不同的文件系统可以共存于同一个操作系统中,…...
目标检测评估指标mAP详解:原理与代码
目标检测评估指标mAP详解:原理与代码 目标检测评估指标mAP详解:原理与代码一、前言:为什么需要mAP?二、核心概念解析2.1 PR曲线(Precision-Recall Curve)2.2 AP计算原理 三、代码实现详解3.1 核心函数ap_pe…...
Linux干货(六)
前言 从B站黑马程序员Linux课程摘选的学习干货,新手友好!若有侵权,会第一时间处理。 目录 前言 1.环境变量 1.环境变量的定义 2.env命令的作用 3.$符号的作用 4.PATH的定义和作用 5.修改环境变量的方法 1.临时生效 2.永久生效 2.…...
字符串相乘(43)
43. 字符串相乘 - 力扣(LeetCode) 解法: class Solution { public:string multiply(string num1, string num2) {string res "0";for (int i 0; i < num2.size(); i) {string str multiplyOneNum(num1, num2[num2.size() -…...
【Vue篇】数据秘语:从watch源码看响应式宇宙的蝴蝶效应
目录 引言 一、watch侦听器(监视器) 1.作用: 2.语法: 3.侦听器代码准备 4. 配置项 5.总结 二、翻译案例-代码实现 1.需求 2.代码实现 三、综合案例——购物车案例 1. 需求 2. 代码 引言 💬 欢迎讨论&#…...
esp32课设记录(二)lcd屏显示文字与照片
取模软件链接: 链接: 百度网盘 请输入提取码 提取码: 1234 课设要求如图所示,因此需要在esp32显示文字和照片。在上个文章中我已经写了按键相关内容。这篇主要描述怎么显示文字和照片。我使用的是ESP-IDF库。 本项目使用的是基于ST7789驱动芯片的LCD屏幕…...