Linux 性能压测

目录

1、内存

(1) 查看内存指令

(2) 清理缓存

(3) swap分区的作用

2、cpu

(1) 查看cpu核心数

(2) 查看cpu使用率

(3) 查看cpu使用百分比

(5) 查看cpu温度

(6) cpu压力测试

3、磁盘

(1) 查看磁盘信息

(2) 数据恢复相关

(3) 查看磁盘io

(4) 磁盘压测


1、内存

(1) 查看内存指令
  1. free命令:free 命令用于显示系统内存使用情况,包括总内存、已使用内存、空闲内存以及缓冲区和缓存的使用情况。

free -h 或者 free -m

该命令以人类可读的方式显示内存大小(以MB或GB为单位),输出示例如下:

              total       used       free     shared    buffers     cached
Mem:          7.8G       2.4G       5.3G       342M       112M       1.1G
-/+ buffers/cache:       1.2G       6.6G
Swap:         2.0G         0B       2.0G

在输出中,"Mem" 行显示了总内存、已使用内存和空闲内存的详细信息。"-/+ buffers/cache" 行显示了实际使用内存和可用内存(不包括缓冲区和缓存)。

  1. top命令:top 命令用于实时监视系统的各种性能指标,包括内存使用情况。启动 top 命令后,按下 "M" 键可以按内存使用排序进程列表,以便查看占用内存最多的进程。

top

top 命令的输出中,内存使用情况显示在 "Mem" 行中,包括总内存、已使用内存、空闲内存、缓冲区和缓存的使用情况。

  1. vmstat命令:vmstat 命令用于报告虚拟内存的统计信息,包括内存使用情况、交换分区使用情况、进程、IO等。

vmstat

vmstat 命令的输出包含多个字段,其中 "free" 列显示空闲内存的数量,"swpd" 列显示交换分区已使用的数量,"buff" 和 "cache" 列显示缓冲区和缓存的大小。

  1. htop命令:htop 是一个更强大和交互式的进程监视器,可以提供更直观的内存使用情况展示。

(2) 清理缓存
  1. 使用 sync 命令:

sync

sync 命令用于将内存中的数据立即写入磁盘,并清空文件系统缓冲区。这将导致缓冲区和缓存的数据被刷新到磁盘上,释放相关的内存。

  1. 使用 drop_caches 参数:

echo 1 > /proc/sys/vm/drop_caches

使用 echo 命令将数字 1 写入 /proc/sys/vm/drop_caches 文件。这将清空缓冲区(buffers)。 如果你想清空缓存(cached),可以使用数字 2 或 3 替代 1:

echo 2 > /proc/sys/vm/drop_caches  # 清空缓存
echo 3 > /proc/sys/vm/drop_caches  # 清空缓冲区和缓存

注意:清理缓冲区和缓存可能会导致一些性能下降,因为系统需要重新读取磁盘上的数据到缓冲区和缓存中。

这些方法会清理 Linux 系统中的缓冲区和缓存,释放相关的内存。在普通的系统运行中,缓冲区和缓存的占用是正常的,它们可以提高系统性能。通常情况下,不需要频繁地手动清理缓冲区和缓存。只有在特殊情况下,如进行性能测试或遇到内存压力较大的情况时,才需要清理缓冲区和缓存。

(3) swap分区的作用
  1. 扩展可用内存:Swap 分区允许将部分不常用的内存数据存储到硬盘上,从而释放物理内存供其他进程使用。当系统的物理内存不足时,Swap 分区可以提供额外的可用内存空间。

  2. 内存回收机制:Swap 分区可以作为一种内存回收机制。当系统内存使用达到一定阈值时,操作系统会将不活跃的内存页面移入 Swap 分区,从而提供更多的空闲物理内存给活跃进程使用。当需要访问 Swap 中的数据时,操作系统会将其移回物理内存。

  3. 支持休眠和睡眠模式:Swap 分区对于休眠(Hibernate)和睡眠(Suspend)模式的支持至关重要。当系统进入休眠或睡眠状态时,当前的内存状态将被保存到 Swap 分区中,以便在唤醒时恢复到先前的状态。

  4. 系统稳定性保护:Swap 分区可以帮助系统避免由于内存不足而导致的崩溃和系统错误。当系统的物理内存耗尽时,Linux 内核会尝试将部分内存页面移到 Swap 分区,以避免系统宕机或进程崩溃。

需要注意的是,Swap 分区并不是用于替代物理内存的解决方案。它是一种补充和扩展内存的机制,适用于处理临时的内存压力或提供休眠和睡眠模式的支持。对于性能敏感的应用程序和服务器,应当优先考虑增加物理内存来改善性能,而不是依赖过多的 Swap 分区。合理设置 Swap 分区的大小,以及根据实际需求调整其使用情况,是确保系统正常运行的重要方面。

2、cpu

(1) 查看cpu核心数
  1. 使用 lscpu 命令:

lscpu

这个命令将显示有关 CPU 和系统架构的详细信息,包括 CPU 核心数、线程数、套接字数等。在输出的 "CPU(s)" 行中,"Core(s) per socket" 列显示每个 CPU 套接字的核心数,"Socket(s)" 列显示 CPU 套接字的数量。

  1. 使用 nproc 命令:

nproc

这个命令将简单地显示当前系统中的 CPU 核心数。

  1. 使用 /proc/cpuinfo 文件:

cat /proc/cpuinfo | grep "core id" | sort | uniq | wc -l

这个命令将读取 /proc/cpuinfo 文件,并统计 "core id" 字段的唯一值数量,即 CPU 核心数。

这些方法将帮助你查看 CentOS 系统中的 CPU 核心数。请注意,CPU 核心数表示物理 CPU 中的核心数量,并不考虑超线程技术(如果有的话)。

(2) 查看cpu使用率
  1. 使用 top 命令:

top

top 命令将显示系统的实时性能信息,包括 CPU 使用率。在 top 命令的输出中,可以查看 "%Cpu(s)" 行,其中的 "%idle" 列显示 CPU 的空闲时间,而 "%us" 列显示 CPU 的用户态使用率,"%sy" 列显示 CPU 的系统态使用率,"%wa" 列显示 CPU 的等待 I/O 的使用率等。 可以按 "1" 键查看每个 CPU 核心的详细信息。

  1. 使用 mpstat 命令:

mpstat

mpstat 命令用于显示多核处理器的实时统计信息,包括每个 CPU 核心的使用率。默认情况下,mpstat 命令显示所有 CPU 核心的平均使用率。 若要显示每个 CPU 核心的详细信息,可以使用以下命令:

mpstat -P ALL
  1. 使用 sar 命令: 首先,你需要安装并设置 sysstat 工具包。然后,可以使用 sar 命令来获取系统资源的历史统计信息,包括 CPU 使用率。以下是使用 sar 命令查看 CPU 使用率的示例:

sar -u

这个命令将显示 CPU 使用率的历史记录,包括用户态、系统态和空闲时间的百分比。

这些方法将帮助你查看 CentOS 系统中的 CPU 使用率。请注意,每个命令的输出可能会略有不同,具体取决于系统配置和命令的参数设置。

(3) 查看cpu使用百分比
CPU 使用率 = (总 CPU 时间 - 空闲 CPU 时间) / 总 CPU 时间 * 100

其中,总 CPU 时间是指在特定时间间隔内 CPU 的总运行时间,而空闲 CPU 时间是指在同一时间间隔内 CPU 处于空闲状态的时间。

在 Linux 系统中,可以使用以下步骤来计算 CPU 使用百分比:

  1. 获取初始的 CPU 时间和空闲 CPU 时间:

cat /proc/stat | grep 'cpu ' | awk '{print $2+$3+$4+$5+$6+$7+$8 " " $5}'

这个命令将读取 /proc/stat 文件中的 CPU 统计信息,并提取总 CPU 时间和空闲 CPU 时间。

  1. 等待一段时间(例如,几秒钟)。

  2. 获取更新后的 CPU 时间和空闲 CPU 时间:

cat /proc/stat | grep 'cpu ' | awk '{print $2+$3+$4+$5+$6+$7+$8 " " $5}'
  1. 计算 CPU 使用率:

    • 将初始的总 CPU 时间和空闲 CPU 时间保存到变量中。

    • 计算更新后的总 CPU 时间和空闲 CPU 时间与初始值之间的差值。

    • 使用上述公式计算 CPU 使用百分比。

下面是一个示例脚本,演示如何计算 CPU 使用百分比(以 Bash 脚本为例):

#!/bin/bash
​
# 获取初始的 CPU 时间和空闲 CPU 时间
read cpu_total_idle cpu_idle <<< $(cat /proc/stat | grep 'cpu ' | awk '{print $2+$3+$4+$5+$6+$7+$8 " " $5}')
​
# 等待一段时间
sleep 5
​
# 获取更新后的 CPU 时间和空闲 CPU 时间
read cpu_total_idle_new cpu_idle_new <<< $(cat /proc/stat | grep 'cpu ' | awk '{print $2+$3+$4+$5+$6+$7+$8 " " $5}')
​
# 计算 CPU 使用率
cpu_total=$((cpu_total_idle_new - cpu_total_idle))
cpu_usage=$((100 - (cpu_idle_new - cpu_idle) * 100 / cpu_total))
​
echo "CPU 使用率: $cpu_usage%"
(5) 查看cpu温度
# 安装
yum install -y lm_sensors
# 检测传感器
sensors-detect
# 检测
sensors
(6) cpu压力测试
# 下载安装sysbench
yum install -y sysbench
# 压测
sysbench cpu --cpu-max-prime=20000 --threads=8 --time=60 run
Prime numbers limit: 20000
Initializing worker threads...
Threads started!
CPU speed:events per second:  1191.98
General statistics:total time:                          10.0008stotal number of events:              11922
Latency (ms):min:                                    1.56avg:                                    1.68max:                                    4.6595th percentile:                        1.76sum:                                19985.37
Threads fairness:events (avg/stddev):           5961.0000/7.00execution time (avg/stddev):   9.9927/0.01# 解析
Prime numbers limit: 设置的质数计算任务的限制。
Initializing worker threads: 初始化工作线程。
Threads started!: 工作线程已启动。
CPU speed: CPU 的速度,以每秒事件数为单位。
General statistics:
total time: 总共执行的时间。
total number of events: 完成的事件总数。
Latency (ms): 响应时间的统计信息。
min: 最小响应时间。
avg: 平均响应时间。
max: 最大响应时间。
95th percentile: 响应时间的第 95 百分位数。
sum: 响应时间的总和。
Threads fairness: 线程公平性的统计信息。
events (avg/stddev): 每个线程的平均事件数和标准差。
execution time (avg/stddev): 每个线程的平均执行时间和标准差。
# 结果
通过这些统计数据,你可以了解 CPU 压力测试的执行结果和性能指标。例如,CPU 的事件速度是每秒 1191.98 个事件,总共执行了 11922 个事件。在响应时间方面,最小响应时间为 1.56 毫秒,平均响应时间为 1.68 毫秒,最大响应时间为 4.65 毫秒,95% 的响应时间低于 1.76 毫秒。线程公平性方面,每个线程的平均事件数为 5961,标准差为 7.00。

3、磁盘

(1) 查看磁盘信息
  1. 使用 df 命令:

df -h

这个命令将显示磁盘空间使用情况,包括每个挂载点的文件系统、总容量、已用空间、可用空间和使用率。"-h" 参数将以人类可读的方式显示磁盘大小。

  1. 使用 du 命令:

du -h /path/to/directory

这个命令将显示指定目录的磁盘使用情况,包括目录下的所有文件和子目录的大小。"-h" 参数将以人类可读的方式显示磁盘大小。

  1. 使用 fdisk 命令:

sudo fdisk -l

这个命令将显示系统上的所有磁盘分区信息,包括磁盘的设备名称、分区表类型、分区大小等。

  1. 使用 parted 命令:

sudo parted -l

这个命令将显示更详细的磁盘信息,包括磁盘的设备名称、分区表类型、分区大小、文件系统类型等。

  1. 使用 lsblk 命令:

lsblk

这个命令将显示块设备信息,包括磁盘的设备名称、分区、挂载点等。

(2) 数据恢复相关

适用于磁盘数据恢复的工具:

  1. TestDisk:TestDisk 是一款跨平台的开源工具,适用于各种操作系统。它可以帮助恢复丢失的分区和修复引导问题。

  2. PhotoRec:PhotoRec 是 TestDisk 的伴侣工具,用于恢复丢失的文件。你可以通过安装 TestDisk 软件包来同时获得 PhotoRec。

  3. extundelete:extundelete 是一款专门用于恢复已删除的 ext2、ext3 和 ext4 文件系统中文件的工具。 注意:在使用 extundelete 恢复文件之前,请确保你在恢复过程中避免在相关分区上写入新的数据,以避免进一步覆盖被删除的文件。

  4. Scalpel:Scalpel 是一款用于文件恢复的开源工具,它可以通过文件类型的特征进行文件碎片的扫描和恢复。你可以在 CentOS 上安装 Scalpel。

在使用任何磁盘数据恢复工具时,重要的是先停止写入新数据到需要恢复的磁盘或分区,以防止覆盖原始数据。此外,在进行磁盘数据恢复之前备份重要数据,并遵循工具的文档和使用说明,以获得最佳的恢复结果。

(3) 查看磁盘io
  1. 使用 iostat 命令:

iostat -dx
​
# 输出解析
Device:磁盘设备的名称。
rrqm/s:每秒合并的读取请求次数,即每秒发起的读取请求需要合并的次数。
wrqm/s:每秒合并的写入请求次数,即每秒发起的写入请求需要合并的次数。
r/s:每秒完成的独立读取请求次数。
w/s:每秒完成的独立写入请求次数。
rkB/s:每秒读取的数据量,以千字节(KB)为单位。
wkB/s:每秒写入的数据量,以千字节(KB)为单位。
avgrq-sz:平均请求大小,即平均每个 I/O 请求的扇区数。
avgqu-sz:平均请求队列长度,即平均每个设备的 I/O 请求队列中的请求数。
await:平均等待时间,即平均每个 I/O 请求从提交到完成的时间(包括排队时间)。
r_await:平均读取等待时间,即平均每个读取请求从提交到完成的时间。
w_await:平均写入等待时间,即平均每个写入请求从提交到完成的时间。
svctm:平均服务时间,即平均每个 I/O 请求的服务时间(不包括排队时间)。
%util:设备的利用率,即设备在指定时间间隔内的活动百分比。它表示设备的繁忙程度。

这个命令将显示磁盘的平均 I/O 统计信息,包括读取速度、写入速度、I/O 请求和等待时间等。"-d" 参数用于显示磁盘设备的统计信息,"-x" 参数用于显示更详细的磁盘 I/O 统计。

  1. 使用 vmstat 命令:

vmstat -d
​
# 输出解析
disk:磁盘设备的标识。
reads:读取次数。
total:自系统启动以来从磁盘读取的次数。
merged:合并的读取次数。
sectors:自系统启动以来从磁盘读取的扇区数。
ms:自系统启动以来读取操作花费的毫秒数。
writes:写入次数。
total:自系统启动以来写入磁盘的次数。
merged:合并的写入次数。
sectors:自系统启动以来写入磁盘的扇区数。
ms:自系统启动以来写入操作花费的毫秒数。
cur:当前请求队列的请求数。
sec:合并请求的次数。
​
根据上述解释,例如对于 sda 磁盘,自系统启动以来从该磁盘读取了 6467 次,合并了 4 次读取请求,共读取了 429193 个扇区,读取操作花费了 2873 毫秒。同时,自系统启动以来对 sda 磁盘进行了 25945 次写入,合并了 1478 次写入请求,共写入了 2051264 个扇区,写入操作花费了 14634 毫秒。当前请求队列中没有正在进行的操作,合并请求的次数为 12。

这个命令将显示磁盘的活动统计信息,包括读取和写入的次数、块数、每秒的传输速率等。

  1. 使用 sar 命令:

sar -d
​
# 输出解析
08:10:01 PM:时间戳,表示统计数据的时间点。
DEV:磁盘设备的名称。
tps:每秒完成的传输次数,表示设备的总 I/O 操作数(读取和写入)。
rd_sec/s:每秒读取的扇区数。
wr_sec/s:每秒写入的扇区数。
avgrq-sz:平均请求大小,即每个 I/O 请求的扇区数。
avgqu-sz:平均请求队列长度,表示每个设备的 I/O 请求队列中的请求数。
await:平均等待时间,表示每个 I/O 请求从提交到完成的时间(包括排队时间)。
svctm:平均服务时间,表示每个 I/O 请求的服务时间(不包括排队时间)。
%util:设备的利用率,表示设备在指定时间间隔内的活动百分比,即设备的繁忙程度。

这个命令将显示磁盘的活动统计信息,包括读取和写入的次数、传输速率、等待时间等。sar 命令通常需要事先安装并配置 sysstat 工具。

  1. 使用 iotop 命令:

iotop

这个命令将显示实时的磁盘 I/O 活动,包括每个进程的 I/O 使用情况、读取和写入速度等。

这些命令可以提供有关磁盘 I/O 活动的不同方面的信息。根据你的需求和特定的场景,选择适合的命令来查看磁盘的 I/O 情况。请注意,具体命令和输出格式可能会因操作系统和工具版本而有所不同。

(4) 磁盘压测
# 安装
yum install -y fio
# 压测
fio --name=test --ioengine=sync --iodepth=32 --rw=randwrite --bs=4k --size=1G --numjobs=4 --time_based --runtime=60 --group_reporting
​
# 参数解析
--name=test: 测试任务的名称。
--ioengine=sync: I/O 引擎,使用同步模式。
--iodepth=32: I/O 深度,即并发的 I/O 请求数。
--rw=randwrite: 读写模式,随机写入。
--bs=4k: 块大小,每次 I/O 操作的数据块大小。
--size=1G: 测试文件的大小。
--numjobs=4: 并发任务数。
--time_based: 基于时间的运行模式。
--runtime=60: 运行时间,60 秒。
--group_reporting: 打印汇总报告。
# 结果解析
IOPS(Input/Output Operations Per Second):每秒的输入/输出操作数。反映了磁盘的处理能力,值越高表示磁盘性能越好。
​
Throughput:数据吞吐量,通常以 MB/s 或 GB/s 表示。表示磁盘每秒能够传输的数据量,值越高表示磁盘性能越好。
​
Latency:延迟时间,表示从发送一个 I/O 请求到接收到响应的时间。常见的度量单位包括毫秒(ms)或微秒(μs),值越低表示磁盘响应更快。
​
Bandwidth:带宽,表示单位时间内传输的数据量。通常以 MB/s 或 GB/s 表示,与吞吐量类似。
​
I/O Depth:I/O 深度,表示同时进行的并发 I/O 请求数。较高的 I/O 深度可以提高并发性能。
​
CPU Usage:CPU 使用率,表示在测试期间 CPU 的负载情况。高 CPU 使用率可能表示测试任务对 CPU 造成了较大的负载。
​
Error Rate:错误率,表示在测试过程中发生的错误数量。较低的错误率表示磁盘运行稳定。

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

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

相关文章

MATLAB Simulink +STM32硬件在环 (HIL)实现例程测试

MATLAB Simulink STM32硬件在环 &#xff08;HIL&#xff09;实现例程测试 &#x1f4cd;相关篇《STM32CubeMxMATLAB Simulink点灯程序》✨本例程没有使用到STM32CubeMX来创建工程&#xff08;在Simulink 中不是选择的STM32xxxbased类型的&#xff09;。 &#x1f516;STM32xxx…

基于SSM的网上手机销售系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…

llama.cpp部署通义千问Qwen-14B

llama.cpp是当前最火热的大模型开源推理框架之一&#xff0c;支持了非常多的LLM的量化推理&#xff0c;生态比较完善&#xff0c;是个人学习和使用的首选。最近阿里开源了通义千问大语言模型&#xff0c;在众多榜单上刷榜了&#xff0c;是当前最炙手可热的开源中文大语言模型。…

go语言学习-并发编程(并发并行、线程协程、通道channel)

1、 概念 1.1 并发和并行 并发:具有处理多个任务的能力 (是一个处理器在处理任务)&#xff0c;cpu处理不同的任务会有时间错位&#xff0c;比如有A B 两个任务&#xff0c;某一时间段内在处理A任务&#xff0c;这时A任务需要停止运行一段时间&#xff0c;那么会切换到处理B任…

微服务的应用架构

架构描述的是在更高层次将应用拆分为子系统或模块的方法&#xff0c;以及这些子系统之间的交互关系。在一个基于微服务架构构建的应用中&#xff0c;每个服务都需要有自己的架构。 事实上&#xff0c;单体应用在复杂度较低时&#xff0c;它的生产效率是要高于微服务的。只有在…

算法 | 每日一题 | 可获得的最大点数 | 滑动窗口

1423. 可获得的最大点数 原题地址&#xff1a; 力扣每日一题&#xff1a;可获得的最大点数 几张卡牌 排成一行&#xff0c;每张卡牌都有一个对应的点数。点数由整数数组 cardPoints 给出。 每次行动&#xff0c;你可以从行的开头或者末尾拿一张卡牌&#xff0c;最终你必须正好拿…

LoRaWAN协议栈LoRaMac-Node版本变迁历史(最新4.7.0)

V4.7.0 2022年12月9日发布 简介 基于“ LoRaWAN 规范1.0.4”和“ LoR aWan 规范1.1.0 FCntDwn 勘误表”的版本&#xff0c;“ LoRA WAN 区域参数2-1.0.3” GitHub报告了问题更正 已知的限制 SAMR34平台不实现NVM存储功能。这是大于或等于1.0.4的LoRaWAN版本的要求。 维护者…

JsonDeserialize序列化和反序列化(JSON转Java对象,反之)

我是直接用默认的&#xff0c;省事省事省事 JsonSerialize // 序列化JsonDeserialize // 反序列化private List<List<LinkedHashMap<String, Object>>> s; 一、JsonDeserialize注解介绍 JsonDeserialize注解是Jackson库提供的一种注解&#xff0c;用于指定反…

React18 入门与进阶

React18 入门与进阶 前言一、核心概念与类组件使用1、虚拟DOM与新的渲染写法2、JSX 与 JSX 的使用3、类组件和函数组件4、类组件与类组件通信5、props详解与注意事项6、类组件中事件的使用7、类组件响应式数据实现与原理8、PureComponent 与 shouldComponentUpdate9、immutable…

Java数据结构之《构造哈夫曼树》题目

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度中等(偏难理解)的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题…

Difference between getc(), getchar(), and gets()

getc(): 从输入中只能读单个字符 getchar()&#xff1a;从标准输入流中输入都单个字符。 两者基本等同&#xff0c;唯一不一样的是getc()是任何输入流&#xff0c;而getchar()是标准输入流。 gets:可以读入含有空格的字符串 // Example for getc() in C #include <stdio.h…

Vue使用@import 引入样式文件全局污染、使用scoped失效问题

scoped 在组件中的style使用import方式引入外部css&#xff0c;发现引入的css会污染到其他地方。即所谓的样式全局污染。不管加不加scoped都一样。 <style lang"scss" scoped>import url("/style/index.scss") <style> 上面这种情况即时加入…

perl脚本批量处理代码中的中文注释乱码的问题

代码中统一使用utf-8编码是最好的&#xff0c;但是有一些多人合作的项目或者一些历史遗留代码&#xff0c;常见一些中文注释乱码的问题。这里以一个开源项目evpp为例子 evpp。以项目中的一个commit id为例&#xff1a; 477033f938fd47dfecde43c82257cd286d9fa38e &#xff0c; …

算法设计与实现--动态规划篇

什么是动态规划算法 动态规划算法是一种求解复杂问题的方法&#xff0c;通过将原问题分解为相对简单的子问题来求解。其基本思想是将待求解的问题分解为若干个子问题&#xff08;阶段&#xff09;&#xff0c;按顺序求解子阶段&#xff0c;前一子问题的解&#xff0c;为后一子…

YOLOV8改进:在C2f模块不同位置添加SegNext_Attention

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 3.涨点效果:SegNext_Attention注意力机制,实现…

市面上的AR眼镜:优缺点分析

AR眼镜是近年来备受关注的科技产品之一。它通过将虚拟信息叠加到现实世界中&#xff0c;为用户提供全新的视觉体验。目前&#xff0c;市面上的AR眼镜主要分为两类&#xff1a;消费级AR眼镜和企业级AR眼镜。 消费级AR眼镜 消费级AR眼镜的特点是轻便、时尚、易于佩戴&#xff0…

面部动作在情绪识别中的作用(nature reviews psychology2023)

文章目录 摘要静态情绪识别动态情感识别时空信息独特的时间信息 动态表情识别的机制动态信息为什么重要什么时候动态信息起作用为什么动态信息很重要 多模态表情识别启发 摘要 过去大多数关于情绪识别的研究都使用了摆拍的表情照片&#xff0c;旨在描绘情绪表现的峰值。虽然这…

正则表达式从放弃到入门(2):grep命令详解

正则表达式从放弃到入门&#xff08;2&#xff09;&#xff1a;grep命令详解 总结 本博文转载自 这是一篇”正则表达式”扫盲贴&#xff0c;如果你还不理解什么是正则表达式&#xff0c;看这篇文章就对了。 如果你是一个新手&#xff0c;请从头阅读这篇文章&#xff0c;如果你…

Mysql窗口函数

1 什么是窗口函数 MySQL从8.0开始支持窗口函数&#xff0c;有的也叫分析函数&#xff08;处理相对复杂的报表统计分析场景&#xff09;&#xff0c;这个功能在大多商业数据库和部分开源数据库中早已支持。 窗口函数&#xff1a;窗口、函数&#xff08;应用在窗口内的函数&…

P-Tuning v2论文概述

P-Tuning v2论文概述 P-Tuning v2论文概述前言微调的限制性P-Tuning的缺陷P-Tuning v2 摘要论文十问NLU任务优化点实验数据集预训练模型实验结果消融实验 结论 P-Tuning v2论文概述 前言 微调的限制性 微调&#xff08;fine-tuning&#xff09;是一种在预训练模型基础上进行目…