性能测试-jmeter实战4
课程:B站大学
记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师
性能测试-jmeter实战4
- jmeter环境搭建
- 1. 安装Java环境(必需)
- JMeter环境搭建完整指南
- 1. 安装Java(必需)
- Windows/macOS安装步骤
- 下载jmeter
- JMeter环境搭建完整指南
- 1. 安装Java(必需)
- Windows/macOS安装步骤
- Windows用户可直接双击bin/jmeter.bat
- Linux/macOS
- Windows
- jmeter目录作用
- 2. 核心目录详解
- 2.1 bin目录(最重要)
- 语言设置
- 默认保存路径
- RMI设置(分布式测试)
- 安装插件示例
- docs目录(文档资源)
- extras目录
- 生成HTML报告
- printable_docs目录
- jmeter.properties中修改
- JMeter核心配置文件说明
- 配置详解
- 1. jmeter.properties
# 性能测试工具 ## LoadRunner LoadRunner 是一款由 Micro Focus(原惠普企业软件)开发的性能测试工具,广泛应用于软件、Web应用、移动应用及企业系统的负载测试和性能分析。 **主要组件** VuGen:录制和编辑测试脚本。 Controller:管理测试场景和调度虚拟用户。 Load Generator:生成实际负载的机器。 Analysis:分析测试结果并生成报告。  # Jmeter Apache JMeter 是一款开源的 性能测试 和 负载测试 工具,最初设计用于测试 Web 应用程序,但现已扩展支持多种协议,适用于 API、数据库、FTP、消息队列等多种场景。它基于 Java 开发,支持跨平台运行(Windows、Linux、macOS),广泛应用于性能测试、压力测试和功能测试。 ## 主要组件
- 测试计划(Test Plan):测试的顶层结构,包含线程组、采样器、监听器等。 线程组(Thread
Group):定义并发用户数(线程数)、循环次数、启动时间等。 - 采样器(Samplers):发送请求(如 HTTP 请求、JDBC 请求)。
- 监听器(Listeners):收集和展示测试结果(如表格、图形、日志)。
- 配置元件(Config Elements):设置请求头、Cookie、数据库连接等。
- 定时器(Timers):控制请求之间的延迟(如模拟用户思考时间)。
## 适用场景 - Web 应用 & API 测试:模拟高并发 HTTP 请求,测试 REST/SOAP 接口性能。
- 数据库性能测试:通过 JDBC 压测 SQL 查询效率。
- 消息队列测试:如 Kafka、RabbitMQ 的吞吐量测试。
- 文件传输测试:FTP/SFTP 上传下载性能。
- 微服务 & 云原生测试:结合 Docker/Kubernetes 进行动态扩展测试。
jmeter环境搭建
1. 安装Java环境(必需)
JMeter环境搭建完整指南
1. 安装Java(必需)
JMeter基于Java开发,需先安装JDK 8+(推荐JDK 11或17)
Windows/macOS安装步骤
- 下载JDK:
- Oracle JDK官网下载
- OpenJDK下载
- 配置环境变量:
- 新建系统变量
JAVA_HOME
,值为JDK安装路径(如C:\Program Files\Java\jdk-17
) - 编辑系统变量
PATH
,新增%JAVA_HOME%\bin
- 新建系统变量
- 验证安装:
java -version
配置java环境变量即可
下载jmeter
访问Apache JMeter官网
下载Binary版本(如apache-jmeter-5.6.2.zip)
解压到指定目录:
Windows示例:C:\jmeter
Windows配置
新建系统变量JMETER_HOME,值为JMeter解压目录
编辑系统变量PATH,新增%JMETER_HOME%\bin
验证配置:
jmeter -v
命令行模式(压测用)
jmeter -n -t test.jmx -l result.jtl
- 安装插件(可选)
下载Plugins Manager
将下载的plugins-manager.jar放入lib/ext/目录
重启JMeter后,通过菜单安装插件:
路径:Options > Plugins Manager
推荐插件:
Custom Thread Groups
PerfMon(服务器监控)
WebDriver(浏览器驱动) - 验证安装
创建测试计划:
右键Test Plan → Add → Thread Group
右键Thread Group → Add → Sampler → HTTP Request
输入测试URL(如https://example.com)
右键Thread Group → Add → Listener → View Results Tree
点击运行按钮(绿色三角图标)
在View Results Tree中查看响应结果
Master节点配置
修改bin/jmeter.properties:
remote_hosts=192.168.1.101,192.168.1.102
启动分布式测试:
jmeter -n -t test.jmx -l result.jtl -R 192.168.1.101,192.168.1.102
常见问题解决
问题现象 解决方案
报错"Java not found" 检查JAVA_HOME和PATH配置是否正确
GUI界面卡顿 改用命令行模式执行测试
内存不足错误 修改bin/jmeter中的堆内存参数(如-Xms2g -Xmx4g)
中文乱码 修改bin/jmeter.properties中的language参数、
JMeter环境搭建完整指南
1. 安装Java(必需)
JMeter基于Java开发,需先安装JDK 8+(推荐JDK 11或17)
Windows/macOS安装步骤
- 下载JDK:
- Oracle JDK官网下载
- 或OpenJDK下载
- 配置环境变量:
- 新建系统变量
JAVA_HOME
,值为JDK安装路径(如C:\Program Files\Java\jdk-17
) - 编辑系统变量
PATH
,新增%JAVA_HOME%\bin
- 新建系统变量
- 验证安装:
java -version
Linux(Ubuntu/Debian)安装
sudo apt update
sudo apt install openjdk-17-jdk
java -version
- 下载JMeter
访问Apache JMeter官网
下载Binary版本(如apache-jmeter-5.6.2.zip)
解压到指定目录:
Windows示例:C:\jmeter
Linux示例:/opt/jmeter - 配置环境变量(推荐)
Windows配置
新建系统变量JMETER_HOME,值为JMeter解压目录
编辑系统变量PATH,新增%JMETER_HOME%\bin
验证配置:
jmeter -v
Linux/macOS配置
export JMETER_HOME=/opt/jmeter/apache-jmeter-5.6.2
export PATH=$JMETER_HOME/bin:$PATH
source ~/.bashrc # 或~/.zshrc
jmeter -v
- 启动JMeter
GUI模式(测试设计用)
jmeter
Windows用户可直接双击bin/jmeter.bat
https://jmeter.apache.org/images/screenshots/jmeter.png
命令行模式(压测用)
jmeter -n -t test.jmx -l result.jtl
- 安装插件(可选)
下载Plugins Manager
将下载的plugins-manager.jar放入lib/ext/目录
重启JMeter后,通过菜单安装插件:
路径:Options > Plugins Manager
推荐插件:
Custom Thread Groups
PerfMon(服务器监控)
WebDriver(浏览器驱动) - 验证安装
创建测试计划:
右键Test Plan → Add → Thread Group
右键Thread Group → Add → Sampler → HTTP Request
输入测试URL(如https://example.com)
右键Thread Group → Add → Listener → View Results Tree
点击运行按钮(绿色三角图标)
在View Results Tree中查看响应结果 - 分布式测试配置(可选)
Slave节点配置
Linux/macOS
jmeter-server
Windows
jmeter-server.bat
Master节点配置
修改bin/jmeter.properties:
remote_hosts=192.168.1.101,192.168.1.102
启动分布式测试:
jmeter -n -t test.jmx -l result.jtl -R 192.168.1.101,192.168.1.102
常见问题解决
问题现象 | 解决方案 |
---|---|
报错"Java not found" | 检查JAVA_HOME和PATH配置是否正确 |
GUI界面卡顿 | 改用命令行模式执行测试 |
内存不足错误 | 修改bin/jmeter中的堆内存参数(如-Xms2g -Xmx4g) |
中文乱码 | 修改bin/jmeter.properties中的language参数 |
最佳实践建议
生产环境压测务必使用命令行模式
测试脚本建议版本控制(如Git)
长期运行测试建议添加以下监听器:
Aggregate Report
Response Times Over Time
对于复杂测试场景,建议使用:
CSV Data Set Config(参数化)
Regular Expression Extractor(关联)
jmeter目录作用
apache-jmeter-5.6.2/
├── bin/ # 核心可执行文件
├── docs/ # 官方文档
├── extras/ # 扩展功能
├── lib/ # 依赖库
├── licenses/ # 许可证文件
├── printable_docs/ # 可打印文档
└── LICENSE, NOTICE # 法律声明文件
2. 核心目录详解
2.1 bin目录(最重要)
bin/
├── jmeter.bat # Windows启动脚本
├── jmeter.sh # Linux/macOS启动脚本
├── jmeter.properties # 主配置文件(重点!)
├── jmeter.log # 默认日志文件
├── report-template/ # HTML报告模板
├── shutdown.bat # 强制停止脚本
└── system.properties # JVM系统配置
关键文件说明:
jmeter.properties
:500+个可配置参数,包括:
语言设置
language=zh_CN
默认保存路径
save.saveservice.base_directory=/tmp
RMI设置(分布式测试)
remote_hosts=127.0.0.1
lib/
├── ext/ # 扩展插件目录(重点!)
│ └── JMeterPlugins.jar
├── junit/ # JUnit测试支持
└── log4j2.xml # 日志配置文件
自定义jar包放在lib/ext/下
插件管理:
安装插件示例
cp plugins-manager.jar lib/ext/
docs目录(文档资源)
docs/
├── api/ # JavaDoc文档
└── demos/ # 示例测试计划
├── CompoundTest.jmx
└── websocket.jmx
extras目录
extras/
├── ant-jmeter-1.1.1.jar # Ant集成支持
└── beam2graph.xsl # 报表样式表
生成HTML报告
jmeter -g results.jtl -o report/
printable_docs目录
project/
├── testplans/ # .jmx测试脚本
├── datas/ # 测试数据(CSV等)
├── reports/ # 测试结果
└── lib/ # 项目专用jar包
jmeter.properties中修改
默认搜索路径
search_paths=/path/to/your/lib
CSV文件基准路径
csvread.default.path=datas/
JMeter核心配置文件说明
文件路径 | 作用 | 修改建议 |
---|---|---|
bin/jmeter.properties | 主配置文件 | 修改前建议备份原文件 |
bin/system.properties | JVM参数配置 | 调整内存参数(如-Xms1g -Xmx4g) |
lib/log4j2.xml | 日志系统配置 | 修改日志级别(DEBUG/INFO等) |
配置详解
1. jmeter.properties
典型配置项:
# 语言设置
language=zh_CN
# 默认端口
server_port=1099
# 分布式测试节点
remote_hosts=127.0.0.1
# jmeter元件作用域
# JMeter元件作用域详解## 主要作用域类型### 1. 父级作用域
- **定义**:元件只对其直接子级Sampler有效
- **典型元件**:逻辑控制器(如If Controller、Loop Controller)
- **示例**:在Loop Controller下添加的Sampler会受到循环控制 ### 2. 同级作用域
- **定义**:元件对同一层级的所有Sampler有效
- **典型元件**:配置元件(如HTTP请求默认值、HTTP Cookie管理器)
- **示例**:线程组级别的HTTP请求默认值会影响该线程组内所有HTTP请求 ### 3. 全局作用域
- **定义**:元件对整个测试计划中的所有Sampler有效
- **典型元件**:测试计划级别的配置元件
- **示例**:在测试计划根节点添加的User Defined Variables会被所有线程组使用 ## 作用域优先级规则
JMeter遵循以下优先级规则(从高到低):
1. 子级元件配置
2. 父级元件配置
3. 线程组级别配置
4. 测试计划级别配置 ## 常见元件作用域详解### 配置元件
- **作用范围**:取决于放置位置
- **线程组内**:仅影响该线程组
- **测试计划根节点**:影响所有线程组 ### 前置处理器/后置处理器
- **作用范围**:仅对同一父级下的Sampler有效
- **示例**:在某个Sampler前添加的前置处理器只处理该Sampler ### 断言
- **作用范围**:取决于放置位置
- **Sampler子级**:仅验证该Sampler响应
- **父级**:验证所有子Sampler响应 ### 监听器
- **作用范围**:收集其作用域内所有Sampler的数据
- **线程组级别**:收集该线程组所有Sampler数据
- **测试计划级别**:收集所有线程组数据 > **最佳实践提示**:
> 1. 共享配置应放在高层级(如测试计划/线程组级别)
> 2. 特定配置放在最接近Sampler的位置
> 3. 使用模块控制器管理复杂作用域关系
> 4. 避免不必要的全局配置影响


# 实践是检验这里的唯一标准
相关文章:
性能测试-jmeter实战4
课程:B站大学 记录软件测试-性能测试学习历程、掌握前端性能测试、后端性能测试、服务端性能测试的你才是一个专业的软件测试工程师 性能测试-jmeter实战4 jmeter环境搭建1. 安装Java环境(必需) JMeter环境搭建完整指南1. 安装Java࿰…...
C++字符串的行输入
1、字符串的输入 下面用一个真实的示例来进行演示: #include<iostream> #include<string>int main() {using namespace std;const int ArSize 20;char name[ArSize];char dessert[ArSize];cout << "Enter your name:\n";cin >>…...
【Linux网络与网络编程】15.DNS与ICMP协议
1. DNS 1.1 DNS介绍 TCP/IP 中使用 IP 地址和端口号来确定网络上的一台主机的一个程序,但是 IP 地址不方便记忆,于是人们发明了一种叫主机名的字符串,并使用 hosts 文件来描述主机名和 IP 地址的关系。最初, 通过互连网信息中心(SRI-NIC)来…...
Python训练营-Day40-训练和测试的规范写法
1.单通道图片训练 # import torch # import torch.nn as nn # import torch.optim as optim # from torchvision import datasets, transforms # from torch.utils.data import DataLoader # import matplotlib.pyplot as plt # import numpy as np# # 设置中文字体支持 # plt…...
【Python-Day 29】万物皆对象:详解 Python 类的定义、实例化与 `__init__` 方法
Langchain系列文章目录 01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南 02-玩转 LangChain Memory 模块:四种记忆类型详解及应用场景全覆盖 03-全面掌握 LangChain:从核心链条构建到动态任务分配的实战指南 04-玩转 LangChai…...
内存泄漏和内存溢出的区别
内存泄漏(Memory Leak)和内存溢出(Memory Overflow / Out Of Memory, OOM)是软件开发中两个密切相关但又本质不同的内存问题: 核心区别一句话概括: 内存泄漏: 有垃圾对象占用内存却无法被回收&…...
Linux系统---Nginx配置nginx状态统计
配置Nignx状态统计 1、下载vts模块 https://github.com/vozlt/nginx-module-vts [rootclient ~]# nginx -s stop [rootclient ~]# ls anaconda-ks.cfg nginx-1.27.3 ceph-release-1-1.el7.noarch.rpm nginx-1.27.3.tar.gz info.sh …...
linux操作系统的软件架构分析
一、linux操作系统的层次结构 1.内核的主要功能 1)进程管理 2)内存管理 3)文件系统 4)进程间通信、I/O系统、网络通信协议等 2.系统程序 1)系统接口函数库,比如libc 2)shell程序 3)编译器、编辑…...
快速手搓一个MCP服务指南(三):FastMCP的核心组件-构建MCP服务的关键技术实现
FastMCP 是一套面向 LLM 应用开发的工具框架,通过标准化协议衔接大语言模型与外部功能组件,构建「LLM工具」的闭环交互体系。其核心技术体系包含四大模块:工具系统将 Python 函数转化为 LLM 可调用的能力单元,通过类型注解实现参数…...
创建首个 Spring Boot 登录项目
📌 摘要 在 Java Web 开发中,登录功能是最基础也是最重要的模块之一。本文将手把手带你使用 IntelliJ IDEA 和 Maven 构建一个基于 Spring Boot 的简单登录系统,涵盖: 使用 IDEA 创建 Spring Boot 项目配置 Maven 依赖ÿ…...
order、sort、distribute和cluster by(Spark/Hive)
1. abstract ORDER BY:完整查询结果的全局行排序。与SORT BY、CLUSTER BY、DISTRIBUTE BY互斥,不能同时使用。 示例SELECT * FROM table_name ORDER BY column_name;SORT BY:只在每个分区内排序,局部排序结果不是全局有序。与ORD…...
# Python中等于号的使用
# Python中等于号的使用 ## 1. 问题的分析与思考 在Python中,等于号()是一个赋值运算符,用于将右侧的值或表达式的结果赋给左侧的变量。这是Python(以及许多其他编程语言)中非常基础且核心的一个概念。理…...
无人机神经网络模块运行与技术难点
一、神经网络模块的运行方式 1. 分层处理架构 感知层 多模态数据融合:通过八元数卷积网络(OCNN)统一处理LiDAR、摄像头、IMU等异构传感器数据,将点云坐标(x/y/z)、图像RGB与光流信息编码至8维虚部&#…...
宝塔服务器调优工具 1.1(Opcache优化)
第一步:宝塔服务器调优工具 1.1(按照下面的参数填写) 第二步:路径/www/server/php/80/etc/php.ini 搜索jit jit1235 其中1235根据服务器情况修改 第三步:路径/www/server/php/80/etc/php-cli.ini 搜索 jit1235 其中…...
day041-web集群架构搭建
文章目录 0. 老男孩思想-高薪四板斧1. web集群架构图2. 搭建异地备份服务2.1 服务端-阿里云服务器2.1.1 查看rsync软件包2.1.2 添加rsync配置文件2.1.3 添加虚拟用户2.1.4 创建校验用户密码文件2.1.5 创建备份目录2.1.6 启动服务2.1.7 开放安全组端口2.1.8 发送检查邮件 2.2 客…...
国产化条码类库Spire.Barcode教程:如何使用 C# 读取 PDF 中的条码(两种方法轻松实现)
在 PDF 文档的 .NET 平台处理流程中,使用 C# 读取 PDF 条码 是一项常见需求,特别适用于处理扫描件或电子表单。无论是物流、金融、医疗还是制造行业,PDF 文档中经常包含用于追踪或识别的条码。这些条码可能是嵌入图像,也可能是矢量…...
vue 3 计算器
效果: <template><div class"calculator-container"><div class"calculator"><!-- 显示区域 --><div class"display">{{ formattedDisplay }}</div><!-- 按钮区域 --><div class"…...
CRMEB PHP多门店版v3.2.1系统全开源+Uniapp前端+搭建教程
一.介绍 CRMEB多店版是一款为品牌连锁门店打造的私域电商解决方案,以三大运营模式为核心,助力品牌连锁门店轻松构建全渠道、一体化的私域电商生态,促进“线上电商”与“线下门店”销售运营融合,加速品牌数字化转型,为…...
主机复制文字和文件到 Ubuntu 虚拟机
在 VMware Workstation Pro 16 中复制文字和文件到 Ubuntu 虚拟机,方法如下: Open-VM-Tools 禁用 Wayland 解决 。 1.安装 VMware Tools(推荐)或 open-vm-tools: sudo apt update sudo apt install open-vm-tools…...
性能测试 —— 数据库的连接池和主从同步和分表分区
一、数据库的调优(库层面) 1、数据库连接池 1、介绍:数据库连接池(Database Connection Pool)是一种用于管理数据库连接的技术,它通过预先创建并维护一组数据库连接来提高应用程序的性能和可扩展性。 2、创建、管理、关闭 数据…...
猿人学js逆向比赛第一届第十二题
一、分析请求 看到这里只有一个m的密文参数,没有cookie,请求头等其他的参数,那么这里跟一堆栈信息。 很顺利地锁定了m的加密位置。看到是字符串拼接然后使用btoa函数进行编码,那么这里尝试使用Python复现一下。顺利拿到结果。 复现…...
第十节 新特性与趋势-CSS层叠规则升级
以下是关于 CSS层叠规则升级 的全面解析,结合最新规范(如级联层layer)和传统层叠机制的演进,从核心原理、应用场景到实践策略的系统性总结: 一、传统层叠规则的三大支柱 CSS层叠规则的传统机制基于以下三个维…...
关键领域软件工厂的安全中枢如何全面升级供应链检测能力
随着软件供应链安全体系在互联网、金融等领域逐步成熟,关键领域正加速迈向以 MLOps、软件工厂为核心的新型研发生态。在这一过程中,面对代码安全、依赖合规、系统可信等多重挑战,传统人工审查模式已难以满足国家级高安全性要求。 Gitee Scan…...
西门子G120XA变频器:数据中心能效革命的核心引擎
在数字经济爆发式增长的今天,数据中心已成为支撑社会运转的"数字心脏"。然而,其庞大的能耗需求与绿色低碳目标之间的矛盾日益凸显——尤其是冷却系统作为数据中心第二大能耗单元(占比约35%),正成为能效提升的…...
从零开始学习Spring Cloud Alibaba (一)
人狠话不多,直接开始少点屁话本着共同学习进步的目的和大家交流如有不对的地方望铁子们多多谅解 准备工具 开发工具 idea Java环境 jdk17 容器: docker Maven 3.8.6 仓库镜像阿里云 <mirror><id>alimaven</id><name>aliyun maven</name><…...
【C/C++】C++ 编程规范:101条规则准则与最佳实践
C 编程规范:101条规则准则与最佳实践 引言 C 是一门强大而复杂的语言,能高效控制硬件,也能写出优雅抽象。然而,正因其复杂性,项目中若缺乏统一规范,极易陷入混乱、难维护、易出错的泥潭。 本文总结了 10…...
PyTorch topk() 用法详解:取最大值
torch.topk(input, k) 返回张量中最大的 k 个元素以及它们在原张量中的 索引。 函数原型 torch.topk(input, k, dimNone, largestTrue, sortedTrue)参数说明: 参数说明input输入张量k要取出的前 k 个值dim指定沿哪个维度取值(默认是最后一维ÿ…...
毕业论文查重原理及降重方法
【30%的重复率有那么重要吗?】 老师说论文重读率必须低于30%,否则无法毕业! 如果您在专科或者普通本科学生,我只能这样一句话告诉你:你想多了~, 真的想多了~~~,一篇论文还不至于让你不能毕…...
Golang Kratos 系列:业务分层的若干思考(二)
上一篇文章简单讨论了领域层在Kratos中的使用,主要涉及引入领域层,将数据层和业务层之间的解耦,接下来讨论一个稍微全面一点的例子,在此基础上引入外部Api(主要是易变部分)的领域层下的情况。 我们同样可以…...
技术伦理之争:OpenAI陷抄袭风波,法院强制下架宣传视频
在AI巨头OpenAI宣布以65亿美元天价收购苹果前设计总监Jony Ive的硬件公司IO仅一个月后,一场抄袭指控将这家科技明星企业推上风口浪尖。 源自谷歌X实验室的初创企业IYO将OpenAI告上法庭,指控其窃取智能耳塞核心技术,并通过巨额收购试图掩盖抄袭…...
烟花爆竹生产企业库房存储安全风险预警系统
烟花爆竹生产企业库房存储安全风险预警系统是保障库房物资安全、规范作业流程、防范安全事故的重要技术手段,涵盖多个关键预警功能。 温湿度预警 在库房内安装温湿度传感器,这些传感器如同敏锐的“环境感知员”,能够实时监测库房内环境变…...
Jenkins+Jmeter+Ant接口持续集成
2025最新Jmeter接口测试从入门到精通(全套项目实战教程) 前言: 为什么要用Jmeter做接口测试: 当选择这套方案的时候,很多人会问,为什么选择Jmeter做Case管理?为什么不自己写框架?说…...
基于STM32的寻迹小车设计
标题:基于STM32的寻迹小车设计 内容:1.摘要 本文围绕基于STM32的寻迹小车设计展开。背景是随着自动化技术的发展,寻迹小车在工业巡检、物流运输等领域有广泛应用前景。目的是设计一款能稳定、准确寻迹的小车。方法上,以STM32微控制器为核心,…...
【150】基于SSM+Vue实现的小说阅读小程序(有文档)
系统介绍 基于SSMVue实现的小说阅读小程序采用前后端分离的架构方式,系统设计了管理员、用户两种角色,系统分为管理端、小程序端,管理端实现了管理员登录、个人中心、管理员管理、帮助中心管理、基础数据管理、论坛中心管理、公告资讯管理、…...
ValKey中使用SIMD指令优化bitcount命令
一、AVX/AVX2 的历史演进 随着计算机技术的飞速发展,数据处理需求呈指数级增长,SIMD(单指令多数据)技术应运而生。它通过一条指令同时处理多个数据元素,大幅提升计算效率,从早期的 MMX 技术起步࿰…...
leetcode114-二叉树展开为链表
leetcode 114 思路 用简单例子推导规律 不要一开始就看复杂的树,先从最简单的情况入手 案例一:只有一个节点 输入:1 输出:1不需要任何操作,直接返回 案例二:有两个节点 输入: 1/2输出&a…...
第七章 习题
1.给出下面表达式的逆波兰表示(后缀式): 3请将表达式-(ab)* (cd)-(abc)分别表示成三元式,间接三元式和四元式序列 四元式(Op,arg1,arg2,result) (,a,b,T1) (,c,d,T2) (*,T1,T2,T3) (uminus,T3,-,T4) (,a,b,T5) (,T5,c,T6) (-,T4,T6,r) 三元式 (op,arg1,arg2) (0) (,…...
Spring Ai Alibaba Graph实现五大工作流模式
Spring Ai Alibaba Graph实现五大工作流模式 概述 在 building-effective-agents 一文中,Anthropic将"智能体系统"(agentic systems),从架构层面分为 “工作流”(workflows)和 “智能体”(agents): 工作流…...
基于单片机的语音控制设计(论文)
摘要 自然语音作为人机交互在目前得以广泛的应用以及极大的发展前景。该设计介绍了基于非指定人语音芯片LD3320的语音控制器结构及其实现语音控制的方法。该语音控制器利用STM32F103C8T6单片机作为主要控制器,控制芯片对输入的进行语音识别并处理,根据语…...
【网络安全】从IP头部看网络通信:IPv4、IPv6与抓包工具 Wireshark 实战
从IP头部看网络通信:IPv4、IPv6与抓包工具 Wireshark实战 在网络安全分析和数据通信的世界中,一切都始于“数据包”。数据包是网络上传输的基本单位,而数据包的结构与内容,正是我们理解网络行为的核心。本文将带你深入了解 IP 协…...
计算机组成原理笔记(公众号版本)
1.MAR,存储单元和PC位数之间的关系 我们的MAR位数取决于我们的存储单元的个数; PC位数也是取决于我们的存储单元的个数; 假设我们是64个存储单元,我们的这个MAR实际上就是6位,因为这个2的6次方等于我们的64吗&#…...
CPM基本原理
CPM(连续相位调制,Continuous Phase Modulation )是一种恒包络,信号相位随时间连续变化的调制技术 。其优势显著,连续相位特性,频谱效率高,对带外辐射抑制好;相位平滑过渡࿰…...
浅谈开源在线客服系统与 APP 集成的技术方案与优劣势
在为移动端 App 接入在线客服系统的过程中,我经历了长时间的技术选型探索。最初,我也曾被一些“技术理想主义”选项所吸引,比如让用户自己研发界面我提供 API 以获得最高自由度,或集成 SDK 以追求原生体验。然而,随着项…...
AutoGPT,自主完成复杂任务
AutoGPT是一个开源的AI Agent项目,它的核心目标是让AI能够自主完成复杂任务,而不仅仅是回答单个问题。简单来说,它让AI具备了"自主思考和行动"的能力。 1. AutoGPT的核心概念 什么是AI Agent? AI Agent(智…...
基于Qt C++的影像重采样批处理工具设计与实现
摘要 本文介绍了一种基于Qt C++框架开发的高效影像重采样批处理工具。该工具支持按分辨率(DPI) 和按缩放倍率两种重采样模式,提供多种插值算法选择,具备强大的批量处理能力和直观的用户界面。工具实现了影像处理的自动化流程,显著提高了图像处理效率,特别适用于遥感影像处…...
Qt Windows平台调用ffmpeg动态库
本文基于QT6.8实测验证。 一、下载预编译库 从官方或第三方源获取FFmpeg的Windows动态库(Shared版本),解压后需包含以下目录: bin DLL文件(运行时依赖)include 头文件lib .lib或.dll.a链接…...
猿人学js逆向比赛第一届第十三题
一、分析请求 通过分析请求得知,本题目的参数为yuanrenxue_cookie,因为题目中中明说了是动态cookie,所以可以先删除这个cookie然后下脚本断点,简单分析看一下页面执行的js代码逻辑。 在经过这段代码的时候很明显的可以看到这里的有…...
React性能优化精髓之一:频繁setState导致滚动卡顿的解决方案
在开发一个 List 页面时,我们遇到了一个典型的React性能问题:页面在滚动时出现明显卡顿。这个问题的调试过程充满了误判和重新思考,最终发现了一个重要的性能优化原则。 问题现象 我们有一个监控仪表盘页面,包含多个图表组件。用…...
JavaScript 事件常用属性
一、事件对象基础 在事件处理函数中,浏览器会自动传入一个 event 对象,它包含了与事件相关的所有信息。 element.addEventListener(click, function(event) {// event 是事件对象 }); 二、常见事件属性 属性名 类型 描述 type String 事件类…...
配置自己的NTP 服务器做时间同步
✅ 推荐方案:使用 chrony 搭建 NTP 服务器(适用于 CentOS 7/8/9) chrony 是 CentOS 推荐的 NTP 实现,精度高、资源占用低、同步快,默认在 CentOS 8 中取代了 ntpd。 🔧 一、安装 chrony sudo yum install…...