性能监控——vmstat

性能监控——vmstat

​ 性能监控是对 IT 系统运行效率和有效性的系统观察和测量。它涉及收集、分析和报告各种组件(包括应用程序、网络、服务器和数据库)的关键性能指标 (KPI)。此过程使用专门的工具来跟踪响应时间、吞吐量、资源利用率和错误率等指标。性能监控有助于识别瓶颈、预测潜在问题和优化系统资源。它对于维护服务水平协议 (SLA)、确保用户满意度和支持容量规划至关重要。在现代 IT 环境中,性能监控通常结合实时分析、AI 驱动的洞察和自动警报系统,从而实现对复杂分布式系统的主动管理,并支持 IT 运营和服务交付的持续改进。

vmstat:该命令( virtual memory statistics的缩写)是 Linux 中内置的监控实用程序。该命令用于获取有关内存、系统进程、分页、中断、块 I/O、磁盘和 CPU 调度的信息。用户可以通过指定采样周期来实时观察系统活动。

vmstat命令是系统监控工具sysstat的一部分,可生成[PU 和设备统计信息和报告。vmstat的安装

yum install sysstat

一、vmstat命令语法

基本vmstat语法是:

vmstat [option] [delay[count]]
options:用于定制输出的各种开关
delay:定义输出更新之间的时间间隔
count:指定延迟间隔后输出更新的次数,如果未设置count,则默认值为infinite
options解释
-a显示活跃和非活跃内存。这有助于你了解系统中内存的使用状态,哪些内存正在被频繁使用(活跃内存),哪些内存处于相对空闲状态(非活跃内存)。
-f输出从系统启动至今的 fork 次数。fork 是创建新进程的一种方式,此信息可让你了解系统创建进程的总体情况。
-m显示 slab 信息。slab 是 Linux 内核中用于管理内存分配的数据结构,该参数能帮助你了解内核内存分配的详细情况。
-n仅在开始时显示一次各字段名称,后续持续输出信息时不再重复显示字段名,使输出更简洁。
-s以表格形式输出内存和交换空间的统计信息,涵盖了多种内存相关的统计数据,如总内存、空闲内存、已使用内存、交换空间使用情况等。
-d显示磁盘的统计信息,包括磁盘的读写次数、读写扇区数、读写时间等,可用于监控磁盘的 I/O 性能。
-D显示磁盘的详细统计信息,包括每个磁盘设备的 I/O 操作情况,如读请求、写请求、合并的读请求、合并的写请求、读扇区数、写扇区数等
-p后面需跟磁盘分区名,用于显示指定磁盘分区的统计信息,帮助你针对性地了解某个磁盘分区的 I/O 情况。
-S用于指定输出信息中内存、I/O 等数据的单位,可取值为 k(千字节)、m(兆字节)等。例如,vmstat -S m 会以兆字节为单位显示内存和 I/O 数据。
-t在输出信息中添加时间戳,方便你关联不同时间点的系统状态信息。
-V显示版本信息
man vmstat在终端显示用户手册

二、基本vmstat输出字段解释

[root@Rocky ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 521468   4204 637204    0    0    23     3  100  208  0  1 99  0  0

各字段含义如下:

  1. procs:进程统计
    • r:运行队列中的进程数。即等待 CPU 时间片的进程数量。如果这个数字持续高于系统的 CPU 核心数,说明系统的 CPU 资源比较紧张,可能存在性能瓶颈。
    • b:处于不可中断睡眠状态的进程数。通常是进程正在等待 I/O 操作完成,比如等待磁盘读写、网络数据接收等。如果该值长期不为 0 且较大,可能表示系统存在 I/O 性能问题。
  2. memory:内存统计
    • swpd:已使用的交换空间大小,单位是 KB。交换空间是磁盘上的一块区域,当物理内存不足时,系统会将一部分内存数据交换到交换空间中。如果这个值不断增大,说明系统的物理内存可能不够用,需要关注系统内存使用情况。
    • free:空闲的物理内存大小,单位为 KB。这是系统当前未被使用的内存量,可以直接反映出系统内存的剩余可用资源。
    • buff:用于块设备的缓冲区内存大小,单位为 KB。缓冲区主要用于缓存磁盘块数据,以提高磁盘 I/O 的性能。当系统读取或写入磁盘数据时,数据会先在缓冲区中进行缓存,以便后续再次访问时可以直接从缓冲区中获取,减少实际的磁盘 I/O 操作。
    • cache:用于文件系统的缓存内存大小,单位为 KB。文件系统缓存主要用于存储最近访问过的文件数据和元数据。与缓冲区不同,它更侧重于文件层面的缓存,而不是磁盘块层面。通过文件系统缓存,可以加速文件的读取操作,提高系统的整体性能。
  3. swap:交换空间统计
    • si:从磁盘交换到内存的交换页数量,单位为 KB/s。表示每秒从交换空间(磁盘)换入到物理内存的数据量。如果这个值较大,说明系统频繁地从交换空间读取数据,可能是物理内存不足,导致系统不得不使用交换空间来满足内存需求。
    • so:从内存交换到磁盘的交换页数量,单位为 KB/s。表示每秒从物理内存换出到交换空间(磁盘)的数据量。同样,如果该值较大,也说明系统内存紧张,需要将部分内存数据交换到磁盘上以腾出物理内存空间。
  4. io:输入/输出统计
    • bi:从块设备(如磁盘)读取的块数量,单位为块 /s。这个数值反映了系统对磁盘等块设备的读操作频率和数据量。通过观察该值,可以了解系统的磁盘读负载情况。
    • bo:写入到块设备的块数量,单位为块 /s。它体现了系统对磁盘等块设备的写操作频率和数据量,用于评估磁盘的写负载。如果 bibo 的值同时较高,说明系统的磁盘 I/O 活动比较频繁,可能存在 I/O 性能问题。
  5. system:系统调度
    • in:每秒的中断次数,包括时钟中断、硬件中断等。中断是计算机系统中用于处理异步事件的机制,例如硬件设备完成数据传输、定时器到期等都会产生中断。如果 in 的值过高,可能表示硬件设备频繁产生中断,这会消耗 CPU 资源,影响系统性能。
    • cs:每秒的上下文切换次数。上下文切换是指 CPU 从一个进程或线程切换到另一个进程或线程时需要保存和恢复的相关状态信息,包括寄存器值、程序计数器等。频繁的上下文切换会消耗 CPU 时间,降低系统的整体性能。如果 cs 的值很大,说明系统中的进程或线程切换比较频繁,可能需要进一步分析原因,例如是否存在过多的进程或线程竞争资源。
  6. cpu:cpu统计信息,以百分比形式展示
    • us:用户空间进程使用 CPU 的时间百分比。即运行在用户态的应用程序、进程等使用 CPU 的时间占总 CPU 时间的比例。如果该值较高,说明用户程序消耗了较多的 CPU 资源,可能是某个或某些应用程序存在性能问题,需要进一步分析优化。
    • sy:内核空间进程使用 CPU 的时间百分比。表示运行在内核态的系统进程、内核函数等使用 CPU 的时间占比。内核负责管理系统资源、处理中断、进行进程调度等操作,如果 sy 的值过高,可能是内核任务过于繁重,例如系统调用频繁、内核模块存在性能问题等。
    • id:CPU 空闲时间百分比。该值越高,说明 CPU 越空闲,系统的 CPU 资源利用率越低;反之,如果该值较低,表明 CPU 负载较高,系统可能处于繁忙状态。
    • wa:CPU 等待 I/O 完成的时间百分比。当 CPU 发起 I/O 操作后,需要等待 I/O 设备完成数据传输才能继续执行后续操作,这段等待时间就是 wa。如果 wa 的值较大,说明系统存在 I/O 瓶颈,CPU 大部分时间都在等待 I/O 操作完成,导致 CPU 利用率不高。此时需要关注磁盘、网络等 I/O 设备的性能情况。
    • st:被虚拟机偷走的 CPU 时间百分比(仅在虚拟机环境中有意义)。如果系统是在虚拟机中运行,这个值表示虚拟机监控程序(如 KVM、Xen 等)占用的 CPU 时间,导致客户机操作系统可用的 CPU 时间减少。如果 st 的值较高,说明虚拟机监控程序消耗了较多的 CPU 资源,可能会影响虚拟机内系统和应用程序的性能。

三、示例

3.1 显示活动和非活动系统内存

  • 活动内存:进程正在使用的内存。

  • 非活动内存:分配给不再运行的进程的内存。

  • 使用该**-a选项可将buffcache内存列替换为inactactive**列。这些列显示系统中非活动和活动内存的数量。

[root@Rocky ~]# vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st2  0      0 521544 815128 253636    0    0    20     3   95  202  0  1 99  0  0

3.2 内存和调度统计

##生成有关内存、事件计数器和 CPU 调度统计信息的更多详细信息
[root@Rocky ~]# vmstat -s

使用 vmstat 查看 Linux 中的内存和调度统计信息。

输出显示的报告与vmstat基本报告类似,但某些部分包含更多详细信息。例如,输出将良好CPU 时间和非良好 CPU 时间分开,并在基本报告中合并vmstat

输出中有四个部分:

  1. 输出的第一部分涉及已使用的内存量:
  • 总物理内存。
  • 当前使用的内存。
  • 活動記憶。
  • 非活动内存。
  • 释放记忆。
  • 缓冲内存。
  • 高速缓存内存。
  • 交换内存信息。

2.第二部分显示CPU统计信息:

  • 非良好 CPU 滴答数 – CPU 用于高优先级 进程的次数。
  • 良好的 CPU 滴答数 – CPU 用于低优先级 进程的次数 。
  • 系统 CPU 滴答 – CPU 用于内核进程的次数 。
  • 空闲 CPU 滴答数——CPU 空闲的次数。
  • IO-wait——CPU 用于输入/输出管理的次数。
  • IRQ ——CPU 接收中断请求的次数 。
  • softirq——CPU 接收软件中断的次数 。
  • 被盗 CPU 滴答数——虚拟机窃取 CPU 时间的次数。

3.第三部分显示与内存分页相关的值:

  • 从虚拟内存 调入的页面总数。

  • 调出 到虚拟内存的总页面数。

  • 从交换内存读取的总页面数。

  • 写入交换内存的总页面数。

  • 最后一节描述了 各种事件计数器:

  • 自启动以来的中断次数。

  • 执行的上下文切换的次数。

  • 上次启动时间的时间戳 。

  • fork的总数 。

3.3 显示自启动以来的Fork次数

  • fork:是从现有正在运行的进程中创建的新进程

    [root@Rocky ~]# vmstat -f3026 forks
    

3.4 显示快速摘要磁盘统计信息

  • 该**-D**选项会生成所有磁盘活动的快速摘要统计信息

    [root@Rocky ~]# vmstat -D4 disks2 partitions13241 total reads20 merged reads1765491 read sectors14401 milli reading5312 writes328 merged writes267212 written sectors7249 milli writing0 inprogress IO17 milli spent IO
    ## 输出显示系统详细信息,例如磁盘数量、分区数量、读取次数、写入次数等
    

3.5 显示磁盘统计信息(读/写统计信息)

  • -d:获取每个磁盘使用情况的详细统计信息

    [root@Rocky ~]# vmstat -d
    disk- ------------reads------------ ------------writes----------- -----IO------total merged sectors      ms  total merged sectors      ms    cur    sec
    sr0       40      0    2083      58      0      0       0       0      0      0
    sda     7011     20  932380    7240   2569    332  136489    3175      0      9
    dm-0    6090      0  826924    7078   2885      0  132393    4322      0      9
    dm-1     104      0    4440      33      0      0       0       0      0      0

    使用 vmstat 查看详细的磁盘统计信息。

输出显示每个磁盘的三列 -读取、写入和IO 。读取和写入以毫秒为单位,而 IO 列以秒为单位。

每栏有若干小节:

  • disk:表示磁盘设备的名称。例如 sr0 通常代表光驱设备,sda 一般是第一块 SATA 硬盘,dm-0dm-1 通常是与逻辑卷管理(LVM)相关的设备映射。
  • reads 部分
    • total:从系统启动以来,该磁盘设备执行的读操作总次数。比如 sdatotal 为 7011,表示从系统启动到现在,对 sda 磁盘进行了 7011 次读操作。
    • merged:合并的读操作次数。操作系统为了提高磁盘 I/O 效率,会尝试将相邻的读请求合并成一个更大的请求。以 sda 为例,merged 为 20,意味着有 20 次读请求被合并处理。
    • sectors:从磁盘读取的扇区总数。每个扇区通常为 512 字节。像 sdasectors 为 932380,那么读取的数据总量约为 932380 * 512 字节。
    • ms:读操作总共花费的时间(以毫秒为单位)。如 sda 的读操作总共花费了 7240 毫秒。
  • writes 部分
    • total:从系统启动以来,该磁盘设备执行的写操作总次数。例如 sda 的写操作总次数为 2569 次。
    • merged:合并的写操作次数。sda 有 332 次写请求被合并处理。
    • sectors:写入到磁盘的扇区总数。sda 写入的扇区总数为 136489 个。
    • ms:写操作总共花费的时间(以毫秒为单位)。sda 的写操作总共花费了 3175 毫秒。
  • IO 部分
    • cur:当前正在进行的 I/O 操作数量。如果该值长时间不为 0,可能表示磁盘存在 I/O 瓶颈。这里各磁盘的 cur 都为 0,说明当前没有正在进行的 I/O 操作。
    • sec:从系统启动以来,该磁盘设备进行 I/O 操作所花费的总时间(以秒为单位)。例如 sdasec 为 9,即从系统启动到现在,sda 进行 I/O 操作总共花费了 9 秒。

3.6 显示分区统计信息

  • **-p**使用该选项,后跟分区名称,生成与特定分区相关的报告:

    [root@Rocky ~]# vmstat -p sda1
    sda1            reads      read sectors      writes  requested writes615             90088           2              4096
    ##在此示例中,输出显示 sda 设备的第一个分区sda1的 摘要。摘要包括该分区上的磁盘读写计数以及磁盘读写任务所涉及的扇区总数
    

3.7 显示更新的时间戳信息

  • -t:获取时间戳以及请求的输出

    [root@Rocky ~]# vmstat -t
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st                 CST5  0      0 525784   4204 637264    0    0    17     3   91  197  0  1 99  0  0 2025-03-20 19:43:05
    ## 输出与基本输出相同vmstat,但添加了时间戳
    

3.8使用延迟值

  • [delay]语法指定每次输出更新之间的时间间隔,以秒为单位

    [root@Rocky ~]# vmstat 3
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 525784   4204 637264    0    0    17     3   91  197  0  1 99  0  01  0      0 525612   4204 637264    0    0     0     0  122  329  0  1 99  0  00  0      0 525580   4204 637264    0    0     0     0  123  332  0  1 99  0  00  0      0 525580   4204 637264    0    0     0     0  119  326  0  0 100  0  0
    ^C
    ##在此示例中,每次报告更新之间有三秒的延迟。如果没有指定延迟,则只会打印一个输出,给出自上次重启以来的平均值。
    

3.9 使用计数值

  • 注意:较低的延迟值会加重系统负担,因为它会无限期地运行命令,直到您使用Ctrl+C组合键手动停止它 。为避免额外的负载,请将计数值与延迟值一起使用。语法是,vmstat [delay[count]]

    ##在这个例子中,我们指定我们想要五秒延迟和三次输出更新。
    [root@Rocky ~]# vmstat 5 3
    procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0 525724   4204 637264    0    0    17     2   90  197  0  1 99  0  00  0      0 525612   4204 637264    0    0     0     0  119  318  0  1 99  0  01  0      0 525612   4204 637264    0    0     0     0  122  321  0  1 99  0  0

3.10 更改单位

显示内存和交换统计信息的默认单位是千字节。要更改输出单位,请使用**-S**选项和以下参数之一:

  • k:1000 字节。
  • K:1024字节。
  • m:1000000 字节。
  • M:1048576字节。

要以十进制千字节和兆字节显示统计信息,请分别使用km。大写KM以十六进制千字节和兆字节显示统计信息。

## 使用以下命令每 5 秒更新一次统计信息,并将显示单位更改为兆字节:
[root@Rocky ~]# vmstat 5 -S M
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st2  0      0    513      4    622    0    0    17     2   90  196  0  1 99  0  00  0      0    513      4    622    0    0     0     0  111  313  0  1 99  0  0
^C

3.11 显示Slab统计信息

  • slab 缓存是 Linux 内核用于管理内存分配的数据结构,它有助于提高频繁分配和释放的小对象的内存分配效率。要查看 slab 统计信息,请使用该**-m选项。请注意,此操作需要超级用户权限**

    [root@Rocky ~]# vmstat -m
    

    使用 vmstat 查看 Linux 中的 slab 统计信息。

  • 整体列名解释

    • Cache:表示 slab 缓存的名称,不同的名称对应着不同类型的内核对象缓存,例如 xfs 相关的缓存与 XFS 文件系统的内核操作有关。

    • Num:当前处于使用状态(已分配)的对象数量,即该 slab 缓存中已经被内核使用的对象个数。

    • Total:该 slab 缓存中对象的总数量,包括已分配和未分配的对象。

    • Size:每个对象所占用的内存大小,单位是字节(Byte)。

vmstat -m


[外链图片转存中...(img-pPGE4ByA-1742476536369)]- 整体列名解释- **Cache**:表示 slab 缓存的名称,不同的名称对应着不同类型的内核对象缓存,例如 `xfs` 相关的缓存与 XFS 文件系统的内核操作有关。- **Num**:当前处于使用状态(已分配)的对象数量,即该 slab 缓存中已经被内核使用的对象个数。- **Total**:该 slab 缓存中对象的总数量,包括已分配和未分配的对象。- **Size**:每个对象所占用的内存大小,单位是字节(Byte)。- **Pages**:该 slab 缓存占用的物理内存页数。在 Linux 系统中,内存以页为单位进行管理,一页的大小通常是 4KB(不同系统可能有所不同)。

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

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

相关文章

搭建Python量化开发环境:从零开始的完整指南

搭建Python量化开发环境:从零开始的完整指南 在量化投资领域,一个稳定且高效的开发环境是成功的关键。本文将引导你一步步搭建起自己的Python量化开发环境,确保你能够顺利开始编写和运行量化策略。 🚀量化软件开通 &#x1f68…

图像分割的mask有空洞怎么修补

分享一个对实例分割mask修补的方法,希望对大家有所帮助。 1. 这是我准备分割的图片 2 分割结果 可以看到衣服部分有一些没分割出来,二值化图片能清晰看到衣服部分有些黑色未分出的地方。 3 补全mask区域 import cv2 import numpy as npdef fill_mask_h…

Qt 控件概述 QLabel

目录 QLabel显示类控件 label如何做到与窗口同步变化 边框 Frame QLabel显示类控件 ​​ ​​ textFormat :设置文件格式 ​ Pixmap :标签图片 label如何做到与窗口同步变化 Qt中对应用户的操作 : 事件和信号 拖拽窗口大小就会触发…

词频统计 ccf-csp 2024-2-1

在学习了文本处理后,小 P 对英语书中的 n篇文章进行了初步整理。 具体来说,小 P将所有的英文单词都转化为了整数编号。 假设这 n 篇文章中共出现了 m个不同的单词,则把它们从 1到 m进行编号。 这样,每篇文章就简化为了一个整数…

用爬虫解锁 Shopee 店铺商品数据,开启电商新洞察

在电商竞争白热化的当下,Shopee 作为全球知名的电商平台,汇聚了海量的商品与商机。对于电商从业者、数据分析师、创业者来说,精准掌握 Shopee 店铺的商品信息,就如同手握一把开启财富大门的钥匙。而爬虫技术,无疑是帮助…

k8s中的service解析

k8s中的service解析 在k8s中,我们可以通过pod来创建服务。 然而,当我们创建多个 Pod 来提供同一项服务时,直接通过 Pod IP 进行访问会变得复杂且不可维护。因此,Kubernetes 提供了 Service 这一抽象概念,用于对外暴露…

git 命令回退版本

1、查看提交记录 git log --oneline # 简化的提交历史&#xff08;推荐&#xff09; # 或 git log # 完整提交历史2、版本回退 git reset --hard <commit-hash>3、如果已推送过代码到远程仓库&#xff0c;需强制推送更新 git push -f

深度学习与传统算法在人脸识别领域的演进:从Eigenfaces到ArcFace

一、传统人脸识别方法的发展与局限 1.1 Eigenfaces&#xff1a;主成分分析的经典实践 算法原理 Eigenfaces是基于主成分分析&#xff08;PCA&#xff09;的里程碑式方法。其核心思想是将人脸图像视为高维向量&#xff0c;通过协方差矩阵计算特征向量&#xff08;即特征脸&…

串口接收不到数据,串口RX配置(f407),f103和f407的区别

问题 芯片&#xff1a;STM32F407&#xff0c;软件&#xff1a;标准库 使用串口时&#xff0c;直接把之前STM32F103的串口配置移植过来&#xff0c;同样以串口4为例&#xff0c;代码如下&#xff1a; STM32F103 UART4&#xff1a; void UART4_Configuration(uint32_t BaudRa…

浅分析 PE3R 感知高效的三维重建

"近期&#xff0c;二维到三维感知技术的进步显著提升了对二维图像中三维场景的理解能力。然而&#xff0c;现有方法面临诸多关键挑战&#xff0c;包括跨场景泛化能力有限、感知精度欠佳以及重建速度缓慢。为克服这些局限&#xff0c;我们提出了感知高效三维重建框架&#…

存算一体与存算分离:架构设计的深度解析与实现方案

随着数据量的不断增大和对计算能力的需求日益提高&#xff0c;存算一体作为一种新型架构设计理念&#xff0c;在大数据处理、云计算和人工智能等领域正逐步引起广泛关注。在深入探讨存算一体之前&#xff0c;我们需要先了解存储和计算的基本概念&#xff0c;以及存算分离和存算…

汇编与反汇编:DEBUG 命令使用指南

前言 汇编语言是计算机底层编程语言&#xff0c;直接与 CPU 指令集对应。掌握汇编语言和调试工具&#xff08;如DEBUG&#xff09;是深入理解计算机工作原理的关键。本文将介绍汇编与反汇编的基本概念&#xff0c;并详细讲解如何使用 DEBUG 命令进行调试和内存操作。 目录 一、…

数据分析的12个挑战及其解决方法

俗话说得好“说起来容易做起来难。”数据分析对于风险管理者是极为重要的。我们可以利用数据分析结论&#xff0c;来为企业决策做有效协助&#xff0c;帮助企业改善财务状况&#xff0c;提升企业业务销售水平&#xff0c;帮助员工预测可能发生的问题&#xff0c;并协助监控企业…

栈/堆/static/虚表

在 C 里&#xff0c;栈空间主要用来存放局部变量、函数调用信息等。下面为你介绍栈空间在 C 里的运用方式。 1. 局部变量的使用 在函数内部定义的变量会被存于栈空间&#xff0c;当函数执行结束&#xff0c;这些变量会自动被销毁。 #include <iostream>void exampleFu…

Vue keepalive学习用法

在Vue中&#xff0c;<keep-alive>的include属性用于指定需要缓存的组件&#xff0c;其实现方式如下&#xff1a; 1. 基本用法 • 字符串形式&#xff1a;通过逗号分隔组件名称&#xff0c;匹配到的组件会被缓存。 <keep-alive include"ComponentA,ComponentB&…

搭建个人博客教程(Hexo)

如何快速搭建一套本地的博客系统呢&#xff1f;这里有一套gitNode.jsHexo的部署方案来进行解决。 安装git Git 是一款免费开源的分布式版本控制系统&#xff0c;由 Linus Torvalds 于 2005 年为 Linux 内核开发设计。它通过本地仓库和远程仓库实现代码管理&#xff0c;支持分支…

手撕算法之`vector` 扩容、`string` 分割、链表翻转

手写常见操作:vector 扩容、string 分割、链表翻转 (一)vector扩容 在 C++ 中,vector 的扩容机制是动态数组实现的核心特性,直接关系到性能和内存使用效率。以下是深入剖析: 1. 扩容触发条件 vector<int> v; v.push_back(1); // 当 size() == capacity() 时触发…

鸿蒙NEXT开发问题大全(不断更新中.....)

目录 问题1&#xff1a;鸿蒙NEXT获取华为手机的udid ​问题2&#xff1a;[Fail]ExecuteCommand need connect-key? 问题3&#xff1a;测试时如何安装app包 问题1&#xff1a;鸿蒙NEXT开发获取华为手机的udid hdc -t "设备的序列号" shell bm get --udid 问题2&…

LiteratureReading:[2016] Enriching Word Vectors with Subword Information

文章目录 一、文献简明&#xff08;zero&#xff09;二、快速预览&#xff08;first&#xff09;1、标题分析2、作者介绍3、引用数4、摘要分析&#xff08;1&#xff09;翻译&#xff08;2&#xff09;分析 5、总结分析&#xff08;1&#xff09;翻译&#xff08;2&#xff09;…

ZMC600E,多核异构如何成就机器人精准控制?

ZMC600E主站控制器凭借其多核异构处理器的强大性能&#xff0c;实现了高算力与高实时性的完美平衡&#xff0c;让机器人动作流畅、精准无误。接下来&#xff0c;让我们深入了解其内核结构的奥秘。 在ZMC600E主站控制器控制机器人的时候&#xff0c;可以精准的控制机器人执行各种…