当前位置: 首页 > news >正文

ramdump 中的memory统计

0. 前言

ramdump是指某个时刻系统或者子系统发生crash等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。

ramdump 工具中有很多内存统计的脚本,本文逐一剖析内存相关的脚本,涉及脚本如下:

脚本名称dump文件名称说明
memusage.pymemory.txt统计内存 total memory、free memory、slab、shmem 以及每个进程的 rss、swap、adj 信息;
memstat.pymem_stat.txt统计总的内存使用情况,包含total、free、slab、cached、vmalloc、zram compressed,others中包含 pgtables、kernel stack 等信息;
ion_buffer_parse.py

ionbuffer.txt

ionproc.txt

total_dma_heap.txt

统计db_list 中所有 dma_buf 的size、expr_name等信息。

总的 dma_buf 大小记录在 total_dma_heap.txt 文件中

vmalloc.pyvmalloc.txt统计 vmallocinfo
slabinfo.py

1. memusage.py

该脚本统计的信息会写到 memory.txt 文件中。

来看下统计了哪些信息:

Total RAM: 2,716,180kB
Total free memory: 54,324kB(2.0%)
Slab reclaimable: 69,868kB(2.6%)
Slab unreclaimable: 195,680kB(7.2%)
Total Slab memory: 265,548kB(9.8%)
Total SHMEM (PAGECACHE): 90,300kB(3.3%)
Total SHMEM (SWAP): 212kB(0.0%)TOP 3 swapped SHMEM files are:
Address_space 0xffffff803ec32d30 Allocated 13 pages
file name:  /dev/ashmem/Trans ImageData
Address_space 0xffffff800b2ac460 Allocated 6 pages
file name:  /dev/ashmem/Trans ImageData
Address_space 0xffffff803ec37960 Allocated 6 pages
file name:  /dev/ashmem/Trans ImageDataTask name             PID          RSS in kB         SWAP in kB   ADJ
m.ohos.launcher      1433      283,520(10.4%)       12,676(0.5%)   400
m.ohos.systemui      1406      165,088(6.1%)       25,992(1.0%)  -800
com.ohos.callui     10310      176,892(6.5%)            0(0.0%)     1
m.ohos.contacts      7746      139,204(5.1%)           12(0.0%)   400
com.ohos.camera     17189      124,844(4.6%)            0(0.0%)     0
com.ohos.mms        13071      115,536(4.3%)           12(0.0%)   400
foundation           1027      110,608(4.1%)        3,224(0.1%) -1000
ard:inputMethod      1465      106,788(3.9%)        6,464(0.2%)   400
appspawn              277      110,432(4.1%)            0(0.0%) -1000
字段名称说明
Total RAM统计全局变量 _totalram_pages
Total free memory统计NR_FREE_PAGES,以及占total 的百分比
Slab reclaimable统计NR_SLAB_RECLAIMABLE,以及占 total 的百分比,Kernel5.10 以上的版本字段名称有所变化
Slab unreclaimable统计 NR_SLAB_UNRECLAIMABLE,以及占 total 的百分比,Kernel5.10 以上的版本字段名称有所变化
Total Slab memory统计总的 slab 内存,上面两者之和
Total SHMEM (PAGECACHE)统计NR_SHMEM,以及占 total 的百分比
Total SHMEM (SWAP)统计 shmem 进入 swap 的内存,这些信息都保存在 shmem_swaplist 中
TOP 3 swapped SHMEM files上面统计信息之后,会将 TOP 3 swapped SHMEM files 列举出来
所有进程信息

统计进程的 name、PID、rss、swap 和 adj,其中 rss 和 swap统计值来源于 mm_struct 中 mm_rss_stat 结构体,rss = anon_rss + file_rss + shmem_rss

2. memstat.py

该脚本统计的信息会写到 mem_stat.txt 文件中。

来看下统计了哪些信息:

Total RAM                     :     2652 MB
Free memory:                  :       53 MBTotal Slab memory:            :      259 MB
Total DMA memory              :       54 MB
KGSL                          :        0 MB
ZRAM compressed               :        4 MB
vmalloc                       :       85 MB
Others                        :     1904 MB
Cached                        :      570 MBTotal Unaccounted Memory      :      293 MB
字段名称说明
Total RAM统计全局变量 _totalram_pages
Free memory统计NR_FREE_PAGES,以及占total 的百分比
Total Slab memory统计总的 slab 内存,NR_SLAB_RECLAIMABLE + NR_SLAB_UNRECLAIMABLE
Total DMA memory统计所有dma-buf 的内存大小。对于 kernel 5.10 及以上的版本,该数据读取的是total_dma_heap.txt 文件,该文件于 ion_buffer_parse.py 解析写入,dma-buf 都统计在全局变量 db_list 中,详细查看下文 ion_buffer_parse.py 剖析
KGSL未知
ZRAM compressed统计 ZRAM 压缩的内存大小
vmalloc统计通过vmalloc 申请的内存大小。对于 vmalloc 分配的内存都会被记录到全局变量nr_vmalloc_pages 中,详细可以查看《内核参数:vmallocinfo》一文
others统计 NR_ANON_MAPPED + NR_FILE_PAGES + NR_PAGETABLE  + NR_KERNEL_STACK_KB
Cached统计 NR_FILE_PAGES
Total Unaccounted Memory没有被统计的内存大小

3. ion_buffer_parse.py

该脚本统计的信息会写到 ionbuffer.txtionproc.txttotal_dma_heap.txt 文件中。

3.1 ionbuffer.txt

来看下统计了哪些数据:

*****Parsing dma buf info for ion leak debugging*****File_addr                                REF  Name            Size       Exp        Heap       Size in KB          
v.v (struct file *)0xffffff8031154140	  9   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff8031154500	 10   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff807a006640	  6   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff80a23b3540	  6   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff807cfb92c0	  8   None            0x555000   system-uncached None       (5460 KB)
v.v (struct file *)0xffffff808fc8ea00	  8   None            0x4f4000   system-uncached None       (5072 KB)
v.v (struct file *)0xffffff80b59cab40	  8   None            0x4f4000   system-uncached None       (5072 KB)
v.v (struct file *)0xffffff805cb97540	  3   None            0x48f000   system     None       (4668 KB)

轮询 db_list 中所有的 dma-buf,所有的size 都会统计到 total_dma_heap,最终的总的 dma-buf 的内存会记录到 total_dma_heap.txt 中。

字段名称说明
File_addrdma_buf 所对应的文件的 struct file 地址
REF该文件被引用的次数
Namedma_buf 的name,一般使用 dma_buf_set_name() 函数配置,默认不会设置,所以为None
Sizedma_buf 所代表的内存大小,十六进制
Expdma_buf 的 exp_name,同 dma_heap 的name
Heapdma_heap 的name,上面 txt  显示为None,是因为脚本代码有问题
Size in KB 同Size,只不过转换成了KB 单位

3.2 ionproc.txt

 来看下统计了哪些数据:

*****Parsing dma proc info for ion leak debugging*****render_service (PID 828) size (KB): 43600
Name            Size            Size in KB Time Alive(sec)      (struct file *)          
system-uncached 0x555000              5460 0                    0xffffff80a23b3540       
system-uncached 0x555000              5460 0                    0xffffff8031154500       
system-uncached 0x555000              5460 0                    0xffffff8031154140       
system-uncached 0x555000              5460 0                    0xffffff807a006640       
system-uncached 0x555000              5460 0                    0xffffff807cfb92c0       
system-uncached 0x4f4000              5072 0                    0xffffff80b59cab40       
system-uncached 0x4f4000              5072 0                    0xffffff808fc8ea00       
system-uncached 0xe4000                912 0                    0xffffff8061202280       
system-uncached 0xe4000                912 0                    0xffffff801f506000   ...m.ohos.launcher (PID 1433) size (KB): 16380
Name            Size            Size in KB Time Alive(sec)      (struct file *)          
system-uncached 0x555000              5460 0                    0xffffff807cfb92c0       
system-uncached 0x555000              5460 0                    0xffffff807a006640       
system-uncached 0x555000              5460 0                    0xffffff80a23b3540    

该文件统计的是使用 dma-buf的进程的相关信息,每一个 proc 都会显示进程名、PID 以及使用的dma-buf 的总大小。 

通常该文件统计的数据与ionbuffer.txt 配合使用,分析某些dma_buf 异常。

字段名称说明
Nameslab_buf 的exp_name
Sizeslab_buf 所占用的内存大小,十六进制
Size in KB同上,转换成KB 的单位
Time Alive(sec)slab_buf 的存活时长,一般用于 struct dma_buf 中存在ktime 的成员,除此都为0
(struct file *)同 ionbuffer.txt 中,代表 dma_buf 对应的文件的 struct file 地址

3.3 total_dma_heap.txt

来看下统计了哪些数据:

Total dma memory: 54MB

该数据统计所有dma_buf 的总大小,在分析 ionbuffer.txt 的时候看到,所有db_list 中的 dma_buf 的size 都会累计到变量total_dma_heap,最终记录到 total_dma_heap.txt 文件中。

4. vmalloc.py

该脚本统计的信息会写到 vmalloc.txt 文件中。

来看下统计了哪些信息:

Memory mapped region allocated by VmallocVM_STRUCT                                  ADDRESS_RANGE                        SIZE   PHYS_ADDR    CALLER                                         Flag    
v.v (struct vmap_area)0xffffff8081917400   ffffffc000000000-ffffffc000002000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff80b4230c00   ffffffc000002000-ffffffc000004000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff80a33d8180   ffffffc000004000-ffffffc000006000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff80a33d8480   ffffffc000006000-ffffffc000008000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff807a1bb500   ffffffc000008000-ffffffc00000a000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff8025419a80   ffffffc00000a000-ffffffc00000c000     2000          0  bpf_jit_binary_alloc0x0xac                     vmalloc pages=1
v.v (struct vmap_area)0xffffff808d27c180   ffffffc009820000-ffffffc00997a000   15a000          0  load_module0x0xbb0                             vmalloc pages=345
v.v (struct vmap_area)0xffffff808d39b300   ffffffc00997a000-ffffffc009997000    1d000          0  load_module0x0xbb0                             vmalloc pages=28
v.v (struct vmap_area)0xffffff808d5b8300   ffffffc009997000-ffffffc0099b6000    1f000          0  load_module0x0xbb0                             vmalloc pages=30
v.v (struct vmap_area)0xffffff808da97c80   ffffffc0099b6000-ffffffc00a2cb000   915000          0  load_module0x0xbb0                             vmalloc pages=2324
v.v (struct vmap_area)0xffffff808d30ca00   ffffffc00a2cb000-ffffffc00a2d1000     6000          0  load_module0x0xbb0                             vmalloc pages=5
v.v (struct vmap_area)0xffffff808c688200   ffffffc00a2d1000-ffffffc00a311000    40000          0  load_module0x0xbb0                             vmalloc pages=63
v.v (struct vmap_area)0xffffff809621e780   ffffffc00a311000-ffffffc00a6dc000   3cb000          0  load_module0x0xbb0                             vmalloc pages=970
字段名称说明
VM_STRUCT从kmalloc 中分配的struct vm_struct 的地址
ADDRESS_RANGEvm_struct 代表的vmalloc 子区域的内存空间,差值就是SIZE
SIZEvm_struct 代表的vmalloc 子区域的内存大小,十六进制
PHYS_ADDR代表的vmalloc 子区域对应的物理地址起始地址,一般出现于vmap 或 ioremap
CALLER调用vmalloc 的函数
Flagvmalloc 的属性,详细查看《内核参数:vmallocinfo》一文

更详细的 vmalloc 内存管理信息可以查看《vmalloc 详解》一文和《内核参数:vmallocinfo》一文。

5. slabinfo.py

相关文章:

ramdump 中的memory统计

0. 前言 ramdump是指某个时刻系统或者子系统发生crash等异常,系统将内存中的数据通过一定的方式保存下来,相当于一个系统内存快照,用以开发者离线分析系统异常问题。 ramdump 工具中有很多内存统计的脚本,本文逐一剖析内存相关的…...

Element-Ui树形数据懒加载,删除到最后一个空数组不刷新问题

使用elemenui树形删除数据的时候刷新页面,我在网上找了好多方法,要么没用,要么都是部分代码,自己又看不懂,不得不硬着头皮看源码,发现了有个方法可以刷新。 使用elemenui树形删除数据的时候刷新页面。源码里…...

基于NASM搭建一个能编译汇编语言的汇编软件工具环境(利用NotePad++)

文章目录 一、创建汇编语言源程序二、Notepad的下载、安装、使用三、下载和安装编译器NASM3.1 下载NASM编译器3.2 安装并配置环境变量 四、编译汇编语言源程序(使用命令)五、下载和使用配套源码及工具六、将编译功能集成到Notepad 一、创建汇编语言源程序…...

使用setoolkit制作钓鱼网站并结合dvwa靶场储存型XSS漏洞利用

setoolkit是一款kali自带的工具 使用命令启动 setoolkit 1) Social-Engineering Attacks 1) 社会工程攻击 2) Penetration Testing (Fast-Track) 2) 渗透测试(快速通道) 3) Third Party Module…...

计算机组成原理-总线概述

文章目录 总线简图总线的物理实现总览总线定义总线的特性总线的分类按数据格式分类串行总线并行总线 按总线功能分类注意系统总线的进一步分类 总线的结构单总线的机构双总线的结构三总线的结构四总线的结构 小结 总线简图 总线的物理实现 如果该为数据总线,那么当…...

三角函数两角和差公式推导

一.几何推理 1.两角和公式 做一斜边为1的直角△ABC,任意旋转非 k Π , k N kΠ,kN kΠ,kN,补充如图,令 ∠ A B C ∠ α , ∠ C B F ∠ β ∠ABC∠α,∠CBF∠β ∠ABC∠α,∠CBF∠β ∴ ∠ D B F ∠ D B A ∠ α ∠ β 90 , ∠ D A …...

HarmonyOS page生命周期函数讲解

下面 我们又要看一个比较重要的点了 页面生命周期 页面组件有三个生命周期 onPageShow 页面显示时触发 onPageHide 页面隐藏时触发 onBackPress 页面返回时触发 这里 我们准备两个组件 首先是 index.ets 参考代码如下 import router from ohos.router Entry Component struc…...

3D视觉-结构光测量-线结构光测量

概述 线结构光测量中,由激光器射出的激光光束透过柱面透镜扩束,再经过准直,产生一束片状光。这片光束像刀刃一样横切在待测物体表面,因此线结构光法又被成为光切法。线结构光测量常采用二维面阵 CCD 作为接受器件,因此…...

ssm基于web的马病管理系统设计与实现+jsp论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,马病信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…...

SaaS版Java基层健康卫生云HIS信息管理平台源码(springboot)

云his系统源码,系统采用主流成熟技术开发,B/S架构,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问,前后端分离,多服务协同,服务可拆分,功能易扩展。多集团统一登录…...

redis,memcached,nginx网络组件,网络编程——reactor的应用

目录 目标网络编程关注的问题连接的建立连接的断开消息的到达消息发送完毕 网络 IO 职责检测 IO检测 io剖析 操作 IO 阻塞IO 和 非阻塞IOIO 多路复用epoll结构以及接口 reactor编程连接建立连接断开数据到达数据发送完毕 reactor 应用:后续补充源码解析单 reacrtor多…...

【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024)

【机电、机器人方向会议征稿|不限专业|见刊快】2024年机械、 图像与机器人国际会议(IACMIR 2024) 2024 International Academic Conference on Machinery, Images, and Robotics 会议将聚焦“机械、成像和机器人”相关的最新研究领域,为国内…...

uniapp学习之路

uniapp 学习之路 1. 下载HBuilderX2. 下载uView初始框架3. 开始学习1.更改页面背景色,渐变色 1. 下载HBuilderX https://www.dcloud.io/hbuilderx.html?ivk_sa1024320u2. 下载uView初始框架 https://ext.dcloud.net.cn/plugin?id15933. 开始学习 1.更改页面背景…...

移动开发新的风口?Harmony4.0鸿蒙应用开发基础+实践案例

前段时间鸿蒙4.0引发了很多讨论,不少业内人士认为,鸿蒙将与iOS、安卓鼎足而三了。 事实上,从如今手机操作系统竞赛中不难看出,安卓与iOS的形态、功能逐渐趋同化,两大系统互相取长补短,综合性能等差距越来越…...

QT上位机开发(倒计时软件)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 倒计时软件是生活中经常遇到的一种场景。比如运动跑步,比如学校考试,比如论文答辩等等,只要有时间限制规定的地…...

2023 楚慧杯 --- Crypto wp

文章目录 初赛so large e 决赛JIGE 初赛 so large e 题目: from Crypto.Util.number import * from Crypto.PublicKey import RSA from flag import flag import randomm bytes_to_long(flag)p getPrime(512) q getPrime(512) n p*q e random.getrandbits(1…...

Python+OpenCV 零基础学习笔记(1-3):anaconda+vscode+jupyter环境配置

文章目录 前言相关链接环境配置:AnacondaPython配置OpenCVOpencv-contrib:Opencv扩展 Notebook:python代码笔记vscode配置配置AnacondaJupyter文件导出 前言 作为一个C# 上位机,我认为上位机的终点就是机器视觉运动控制。最近学了会Halcon发现机器视觉还…...

Spring Cloud Gateway 常见过滤器的基本使用

目录 1. 过滤器的作用 2. Spring Cloud Gateway 过滤器的类型 2.1 内置过滤器 2.1.1 AddResponseHeader 2.1.2 AddRequestHeader 2.1.3 PrefixPath 2.1.4 RequestRateLimiter 2.1.5 Retry 2.2 自定义过滤器 1. 过滤器的作用 过滤器通常用于拦截、处理或修改数据流和事…...

maven依赖无法传递问题排查

一、背景 在A模块中引入B模块,C服务引入A模块但是B模块没有传递进来。 二、排查 使用mvn clean install -Dmaven.test.skiptrue查看打包日志信息,通过搜索A模块名称,出现如下警告信息: [WARING] The POM for A:jar:0.0.1-SNAP…...

JVM钩子

JVM钩子 简介 在Java应用程序中,可以通过注册关闭钩子(Shutdown Hook)函数来实现在JVM关闭时执行特定的代码。关闭钩子是一种用于在JVM关闭时执行清理任务的机制,它允许开发者在JVM关闭之前执行一些必要的清理工作,如…...

linux cat命令增加-f显示文件名功能

在使用cat命令配合grep批量搜索文件内容时,我仅仅能知道是否搜索到,不知道是在哪个文件里找到的。比如cat ./src/*.c | grep full_write,在src目录下的所有.c文件里找full_write,能匹配到所有的full_write,但是不知道它们分别在哪些文件里。于…...

linux更改登录shell

从bash修改成python 在/etc/passwd下可以更改用户登录bash 例 root:x:0:0:root:/root:/bin/bash //更改bin/bash为/bin/python,就可以用root登录python页面了从python修改成bash 方法一 重启页面按e进入内核编辑模式linux16这行后添加:init/bin/…...

【JS】报错:Uncaught TypeError: Cannot read properties of null (reading ‘classList‘)

错误展示 今天写js代码的时候遇到报错&#xff1a; 源代码&#xff1a; <ul class"slider-indicator"><li class"active"></li><li></li><li></li><li></li><li></li><li><…...

kali2.0安装VMware Tools 和自定义改变分辨率

kali2.0安装VMware Tools 和自定义改变分辨率 VMware Tools 简介&#xff1a;VMware Tools安装&#xff1a;自定义改变分辨率&#xff1a;xrandr命令修改分辨率&#xff1a; 前言&#xff1a; 因为kali2.0比较老 所以需要手动安装 WMware Tools 进行复制粘贴操作&#xff01; …...

redis中根据通配符删除key

redis中根据通配符删除key 我们是不是在redis中keys user:*可以获取所有key&#xff0c;但是 del user:*却不行这里我提供的命令主要是SCANSCAN 0 MATCH user:* COUNT 100使用lua保证原子性 SCAN参数描述 在示例中&#xff0c;COUNT 被设置为 100。这是一个防止一次性获取大…...

【HDFS联邦(2)】HDFS Router-based Federation官网解读:HDFSRouterFederation的架构、各组件基本原理

文章目录 一. 介绍二、HDFS Router-based Federation 架构1. 示例说明2. Router2.1. Federated interface2.2. Router heartbeat2.3. NameNode heartbeat2.4. Availability and fault toleranceInterfaces 3. Quota management4. State Store 三、部署 ing 本文主要参考官网&am…...

【头歌实训】Spark 完全分布式的安装和部署

文章目录 第1关&#xff1a; Standalone 分布式集群搭建任务描述相关知识课程视频Spark分布式安装模式示例集群信息配置免密登录准备Spark安装包配置环境变量修改 spark-env.sh 配置文件修改 slaves 文件分发安装包启动spark验证安装 编程要求测试说明答案代码报错问题基本过程…...

Leetcode—86.分隔链表【中等】

2023每日刷题&#xff08;六十九&#xff09; Leetcode—86.分隔链表 实现代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* partition(struct ListNode* head, int x) {struct ListNode…...

淘宝/天猫商品API:实时数据获取与安全隐私保护的指南

一、引言 随着电子商务的快速发展&#xff0c;淘宝/天猫等电商平台已成为商家和消费者的重要交易场所。对于电商企业而言&#xff0c;实时掌握店铺商品的销售情况、库存状态等信息至关重要。然而&#xff0c;手动管理和更新商品信息既费时又费力。因此&#xff0c;淘宝/天猫提…...

使用 SSH 方式实现 Git 远程连接GitHub

git是目前世界上最先进的分布式版本控制系统&#xff0c;相比于SVN&#xff0c;分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在&#xff0c;也就是有没有联网都可以正常工作&#xff01;当有网络的时候&#xff0c;再把本地提交推送一下就完成了同步&…...

Centos7部署Keepalived+lvs服务

IP规划&#xff1a; 服务器IP地址主服务器20.0.0.22/24从服务器20.0.0.24/24Web-120.0.0.26/24Web-220.0.0.27/24 一、主服务器安装部署keepalivedlvs服务 1、调整/proc响应参数 关闭Linux内核的重定向参数&#xff0c;因为LVS负载服务器和两个页面服务器需要共用一个VIP地…...

12/31

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 摘要Abstract文献阅读&#xff1a;用于密集预测的多路径视觉Transformer1、研究背景2、方法提出3、相关方法3.1、Vision Transformers for dense predictions3.2、C…...

python使用openpyxl为excel模版填充数据,生成多个Sheet页面

目标&#xff1a;希望根据一个给定的excel模版&#xff0c;生成多个Sheet页面&#xff0c;比如模版&#xff1a; 示例程序 import openpyxlexcel_workbook openpyxl.load_workbook("模版.xlsx") for _i in range(3): # 比如填充3个页面# 复制模版sheet页&#x…...

基于ssm的4S店预约保养系统开发+vue论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…...

【Git】Git的基本操作

前言 Git是当前最主流的版本管理器&#xff0c;它可以控制电脑上的所有格式的文件。 它对于开发人员&#xff0c;可以管理项目中的源代码文档。&#xff08;可以记录不同提交的修改细节&#xff0c;并且任意跳转版本&#xff09; 本篇博客基于最近对Git的学习&#xff0c;简单介…...

【超图】SuperMap iClient3D for WebGL/WebGPU —— 数据集合并缓存如何控制对象样式

作者&#xff1a;taco 最近在支持的过程中&#xff0c;遇到了一个新问题&#xff01;之前研究功能的时候竟然没有想到。通常我们控制单个对象的显隐、颜色、偏移的参数都是根据对象所在的图层以及对象单独的id来算的。那么问题来了&#xff0c;合并后的图层。他怎么控制单个对象…...

intellij IDEA开发工具的使用(打开/关闭工程;删除类文件;修改类/包/模块/项目名称;导入/删除模块)

1&#xff0c;打开工程 打开IDEA&#xff0c;会看到如下界面 1栏目里是自己曾经打开过的project&#xff08;工程&#xff09;&#xff0c;直接点击就好。如果需要打开其他工程&#xff0c;则点击open&#xff0c;会出下以下界面。 选择需要加载的project&#xff08;工程&…...

抖音详情API:开发环境搭建与工具选择

随着短视频的流行&#xff0c;抖音已经成为了一个备受欢迎的社交媒体平台。对于开发人员而言&#xff0c;利用抖音详情API开发定制化的抖音应用具有巨大的潜力。本文将为你详细介绍开发抖音应用的开发环境搭建与工具选择&#xff0c;帮助你顺利地开始开发工作。 一、开发环境搭…...

IntelliJ IDEA [插件 MybatisX] mapper和xml间跳转

文章目录 1. 安装插件2. 如何使用3. 主要功能总结 MybatisX 是一款为 IntelliJ IDEA 提供支持的 MyBatis 开发插件 它通过提供丰富的功能集&#xff0c;大大简化了 MyBatis XML 文件的编写、映射关系的可视化查看以及 SQL 语句的调试等操作。本文将介绍如何安装、配置和使用 In…...

Havenask 分布式索引构建服务 --Build Service

Havenask 是阿里巴巴智能引擎事业部自研的开源高性能搜索引擎&#xff0c;深度支持了包括淘宝、天猫、菜鸟、高德、饿了么在内几乎整个阿里的搜索业务。本文针对性介绍了 Havenask 分布式索引构建服务——Build Service&#xff0c;主打稳定、快速、易管理&#xff0c;是在线系…...

vscode软件安装步骤

目录 一、下载软件安装包 二、运行安装包后 一、下载软件安装包 打开vscode官方网址&#xff0c;找到下载界面 链接如下&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 我是windows电脑&#xff0c;各位小伙伴自己选择合适的版本&#xff0c;点击下载按钮…...

C语言中灵活多变的动态内存,malloc函数 free函数 calloc函数 realloc函数

文章目录 &#x1f680;前言&#x1f680;管理动态内存的函数✈️malloc函数✈️free函数✈️calloc函数✈️realloc函数 &#x1f680;在使用动态内存函数时的常见错误✈️对NULL指针的解引用✈️ 对动态开辟空间的越界访问✈️对非动态开辟内存使用free释放✈️使用free释放一…...

小细节处理

重载运算符&#xff1a;重载<运算符。 bool operator<(const Edge&s)const{return w<s.w;}...

【42页动态规划学习笔记分享】动态规划核心原理详解及27道LeetCode相关经典题目汇总

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…...

Python正则的匹配与替换

import re 查找时的注意事项&#xff0c;要查找的内容左右两边打出来&#xff0c;用真正的字符&#xff0c;不要用.*?&#xff0c;离查找内容远一点&#xff0c;再用.*? a /aksj<a>哈哈哈<a><p>拉阿鲁<p>\.askjp b re.findall(<a>(.*?)<…...

解决ELement-UI懒加载三级联动数据不回显(天坑)

最老是遇到这类问题头有点大,最后也是解决了,为铁铁们总结了一下几点 一.查看数据类型是否一致 未选择下 选择下 二.处理数据时使用this.$set方法来动态地设置实例中的属性&#xff0c;以确保其响应式 三.绑定v-if 确保每次重新加载 四.绑定key 五.完整代码...

【数据结构和算法】找出两数组的不同

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 哈希类算法题注意事项 2.2 方法一&#xff1a;哈希法 三、代码 3.1 方法一&#xff1a;哈希法 四…...

基于Python的B站排行榜大数据分析与可视化系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 本文介绍了一项基于Python的B站排行榜大数据分析与可视化系统的研究。通过网络爬虫技术&#xff0c;系统能够自动分析B站网址&#xff0c;提取大量相关文本信息并存储在系统中。通过对这些信息进行…...

MySQL一些常用命令

1、登录本地MySQL #一种是 mysql -u root -p; #(输入密码后回车)#另一种是 mysql -uroot -p123456; #(在-p后面直接带上密码)2、启动MySQL服务 net start mysql; 3、关闭MySQL服务&#xff1a; net stop mysql; 4、创建数据库 create database 数据库名; 5、创建数据…...

WPF 新手指引弹窗

新手指引弹窗介绍 我们在第一次使用某个软件时&#xff0c;通常会有一个“新手指引”教学引导。WPF实现“新手指引”非常方便&#xff0c;且非常有趣。接下来我们就开始制作一个简单的”新手指引”(代码简单易懂&#xff0c;便于移植)&#xff0c;引用到我们的项目中又可添加一…...