【JMeter详解】
JMeter详解
Apache JMeter 是一个开源的、100%纯Java应用程序,设计用于负载测试和性能测量。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。JMeter可以用来对静态和动态资源(如静态文件、Servlets、Perl脚本、Java对象、数据库和查询、FTP服务器等)进行性能测试。
主要特点:
- 多样的采样器:支持HTTP, HTTPS, FTP, JDBC, LDAP, WebService, JMS, SMTP, POP3, IMAP等多种协议。
- 灵活的监听器:提供多种结果查看方式,例如图形化显示、表格形式、树形结构等。
- 丰富的配置元件:如CSV Data Set Config, User Parameters, HTTP Cookie Manager等,可以帮助设置测试计划。
- 逻辑控制器:允许你定义执行流程,比如循环、条件判断、事务控制器等。
- 分布式测试:支持多个JMeter服务器协同工作,以生成更大的负载。
- 可扩展性:通过插件机制,用户可以编写自己的插件来扩展JMeter的功能。
- 参数化和数据驱动测试:可以通过外部文件或内置函数实现变量替换,从而支持数据驱动测试。
JMeter与其他工具的对比
与LoadRunner对比
- 成本:JMeter是免费且开源的,而LoadRunner是商业软件,需要购买许可证。
- 易用性:LoadRunner拥有更直观的图形用户界面,对于新手来说可能更容易上手;JMeter虽然也有GUI,但对于复杂任务,它的学习曲线可能会更陡一些。
- 协议支持:LoadRunner支持更多的协议和应用类型,特别是对于企业级的应用程序和非HTTP/HTTPS协议的支持更为广泛。
- 社区和支持:LoadRunner由Micro Focus官方提供技术支持,而JMeter依赖于活跃的开源社区。
- 性能:在某些情况下,LoadRunner可能比JMeter表现得更好,尤其是在处理大规模并发用户时。
与Gatling对比
- 编程语言:Gatling是基于Scala编写的,并且其测试脚本也是使用Scala DSL(领域特定语言),这使得它更适合熟悉Scala或愿意学习Scala的开发者;JMeter则是完全图形化的,不需要编程知识。
- 报告和分析:Gatling提供了非常漂亮的实时HTML报告,易于理解和分享;JMeter的结果呈现则更加多样化,但需要额外的配置才能达到类似的效果。
- 性能和效率:Gatling以其高效的性能著称,特别是在高并发场景下;JMeter也可以做同样的事情,但在相同条件下,Gatling通常能处理更多的虚拟用户。
与Locust对比
- 编程语言:Locust是Python编写的,使用Python脚本来定义用户行为,适合程序员使用;JMeter则不依赖任何编程语言,所有操作都可以通过GUI完成。
- 灵活性:由于Locust是代码驱动的,因此它可以非常灵活地模拟用户行为,容易实现复杂的业务逻辑;JMeter虽然也有一定的灵活性,但在实现同样复杂的逻辑时可能需要更多的配置。
- 社区和文档:两者都有活跃的社区,但是JMeter作为一个成熟的项目,拥有更广泛的文档和支持资源。
安装使用:
1. 安装与配置
下载JMeter
-
访问Apache JMeter官方网站下载最新版本的JMeter。
-
-
解压下载的文件到你选择的目录。
配置环境变量(可选)
-
如果你想在命令行中直接运行JMeter,可以将
JMETER_HOME/bin
添加到系统的PATH环境变量中。 -
-
-
2. 创建测试计划
启动JMeter
- 在解压后的JMeter目录下的
bin
文件夹中,双击jmeter.bat
(Windows)或运行./jmeter
(Linux/Mac)启动JMeter GUI。
新建测试计划
- 打开JMeter后,点击“File”->“New”来创建一个新的测试计划。
- 你可以给测试计划命名,并根据需要设置一些全局参数,如是否独立运行每个线程组、函数测试模式等。
3. 配置线程组
-
在测试计划中右键点击,选择“Add”->“Threads (Users)”->“Thread Group”来添加一个线程组。
-
设置线程数(即模拟的用户数量)、Ramp-Up Period(增加用户的速率)和循环次数等参数。例如,如果你想模拟100个用户,每秒启动10个新用户,持续时间15分钟,则可以这样配置:
-
线程数: 100
-
Ramp-Up Period: 10秒
-
循环次数: 无限 或者基于你的测试需求设定具体的循环次数
-
4. 添加采样器(Sampler)
-
在线程组下添加HTTP请求采样器或其他类型的采样器,这取决于你要测试的服务类型。
-
对于Web应用,通常是添加“HTTP Request”采样器。你需要填写目标URL、请求方法(GET/POST等)、参数等信息。
5. 配置监听器
-
监听器用于收集和展示测试结果。常见的监听器包括“View Results Tree”、“Summary Report”、“Aggregate Report”等。
-
你可以通过右键点击测试计划或线程组,然后选择“Add”->“Listener”来添加监听器。
6. 添加配置元件(可选)
- 根据需要添加其他配置元件,比如HTTP Header Manager来管理HTTP头部信息,CSV Data Set Config来读取外部数据文件作为测试输入等。
7. 添加逻辑控制器(可选)
- 逻辑控制器允许你控制采样器的执行顺序,实现更复杂的测试场景。例如,你可以使用Loop Controller来重复执行某些操作,或者使用If Controller根据条件执行特定的操作。
8. 运行测试
-
保存你的测试计划为
.jmx
文件。 -
为了获得最佳性能,建议使用非GUI模式运行测试,尤其是在高负载情况下。你可以使用如下命令行指令:
jmeter -n -t <test_plan>.jmx -l <results_file>.jtl
-
-n
表示以非GUI模式运行;-t
后面跟的是测试计划文件路径;-l
指定结果日志文件的位置。
9. 分析测试结果
- 测试完成后分析JMeter的测试结果是性能测试过程中至关重要的一步,以下是详细的步骤和建议。
1. 使用监听器查看初步结果
Summary Report 和 Aggregate Report
- Summary Report 提供了每个采样器(请求)的基本统计数据,包括样本数、平均响应时间、最小/最大响应时间、吞吐量(每秒事务数)、错误率等。
- Aggregate Report 类似于Summary Report,但它还提供了90%线、中位数等更详细的统计信息,有助于评估大多数用户的体验。
View Results Tree
- View Results Tree 允许你查看单个HTTP请求的详细信息,包括请求头、响应数据、响应码等。这对于调试特定问题非常有用。
Response Time Graph
- Response Time Graph 显示了响应时间随时间变化的趋势,可以帮助识别响应时间突然增加的时间点,这可能是由于服务器资源耗尽或其他原因引起的。
Transactions per Second (TPS)
- Transactions per Second (TPS) 图表展示了每秒钟完成的事务数量,对于了解系统的吞吐能力非常重要。
Hits Per Second
- Hits Per Second 图表展示了每秒钟的请求数量,反映了系统处理请求数量的能力。
Response Codes per Second
- Response Codes per Second 图表显示了每秒钟返回的不同HTTP状态码的数量,帮助识别失败的请求。
Active Threads Over Time
- Active Threads Over Time 图表展示了活动线程数随时间的变化,反映了并发用户数的变化。
Bytes Throughput Over Time
- Bytes Throughput Over Time 图表显示了数据传输速率随时间的变化。
2. 生成HTML报告
JMeter可以生成一个全面的HTML报告,包含多个图表和表格,提供对测试结果的深入分析。要生成HTML报告,请使用以下命令:
jmeter -g <results_file>.jtl -o <output_folder>
HTML报告通常包含以下几个部分:
- Overview:概述了整个测试期间的关键指标,如总样本数、错误率、平均响应时间等。
- Response Times Over Time:显示了响应时间随时间的变化趋势。
- Latencies Over Time:展示了延迟时间随时间的变化趋势。
- Throughput Over Time:显示了吞吐量随时间的变化。
- Hits Per Second:展示了每秒点击次数,反映了系统处理请求数量的能力。
- Response Codes per Second:显示了每秒钟返回的不同HTTP状态码的数量,帮助识别失败的请求。
- Active Threads Over Time:展示了活动线程数随时间的变化,反映了并发用户数的变化。
- Bytes Throughput Over Time:显示了数据传输速率随时间的变化。
- Connect Time vs. Latency:比较了连接时间和延迟时间,有助于分析网络性能。
- Response Time Percentiles:提供了不同百分位数的响应时间分布,如50%, 75%, 90%, 95%, 99%等,这对于理解大部分用户的实际体验非常有帮助。
3. 分析关键指标
-
响应时间:
- 平均响应时间 是一个重要的指标,但要注意不要只看平均值。90%或95%的响应时间更能反映大多数用户的实际体验。如果这些高百分位数的响应时间显著高于平均值,可能表明存在长尾效应,即少数请求导致了较慢的响应时间。
-
吞吐量:
- 吞吐量衡量系统在单位时间内能处理的请求数量。较高的吞吐量意味着系统能够处理更多的流量。
-
错误率:
- 任何非2xx或3xx的HTTP状态码都被视为错误。高错误率可能表示应用程序存在问题,需要进一步调查。
-
并发用户数:
- 观察并发用户数与响应时间和吞吐量之间的关系,可以帮助确定系统的最大承载能力。
-
资源利用率:
- 虽然JMeter本身不直接监控服务器资源,但你可以结合其他工具(如Prometheus, Grafana, 或者服务器自带的监控工具)来监控CPU、内存、磁盘I/O、网络带宽等资源的使用情况。这有助于判断性能瓶颈是否由资源限制引起。
4. 识别性能瓶颈
-
服务器端:
- 检查服务器的日志文件,寻找异常或错误信息。使用监控工具查看服务器资源的使用情况,确定是否有资源耗尽的情况。
-
客户端:
- 分析JMeter的测试结果,特别是响应时间和错误率,查找是否存在某些请求特别慢或频繁失败。
-
网络:
- 考虑网络延迟和丢包的可能性,特别是在跨区域或跨国界的测试环境中。使用ping、traceroute等工具检查网络状况。
-
代码优化:
- 根据分析结果,可能需要对应用程序代码进行优化,比如改进数据库查询、减少不必要的HTTP请求、优化前端渲染等。
10. 持续改进
- 根据测试结果调整应用程序代码或服务器配置,优化性能瓶颈。
- 重新运行测试,对比前后差异,确保改进措施有效。
意事项
- 不要在GUI模式下进行大规模负载测试,因为GUI会消耗大量资源,影响测试的准确性和效率。
- 合理规划线程数和Ramp-Up Period,避免一次性启动过多线程导致服务器过载。
- 考虑分布式测试,如果你的测试需要模拟大量的并发用户,可以考虑使用多台机器组成的JMeter集群来进行分布式测试。
原文地址===》JMeter详解
相关文章:
【JMeter详解】
JMeter详解 Apache JMeter 是一个开源的、100%纯Java应用程序,设计用于负载测试和性能测量。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。JMeter可以用来对静态和动态资源(如静态文件、Servlets、Perl脚本、Java对象、数据…...
《PHP Switch》
《PHP Switch》 介绍 PHP 是一种广泛使用的服务器端编程语言,而 switch 语句是 PHP 中用于基于不同条件执行不同代码块的关键字。在本篇文章中,我们将详细介绍 PHP 中的 switch 语句,包括其语法、用法、以及在实际编程中的应用场景。 语法…...
如何确保涡度通量观测数据的准确性?涡度通量光敏感性分析、温度敏感性分析、数据风浪区分析等
确保涡度通量观测数据的准确性,可以采取以下几个步骤: 1.数据预处理:在进行数据分析之前,需要对原始的高频涡度通量数据进行预处理,包括剔除异常值和进行数据缺失插补。异常值剔除可以通过设定合理的阈值来识别并剔除数…...
linux自动化批量分发SSH密钥同时批量测试SSH连接教程(包含自动化脚本代码)
1、检查端口 检查分发对象22端口是否打开 nmap -p22 ip地址如果要批量检查端口可以参考我写的这篇文章:linux自动化一键批量检查主机端口 2、命令行分发密钥原理 Linux分发密钥原理主要涉及SSH(Secure Shell)协议,该协议用于…...
C++ 设计模式:命令模式(Command Pattern)
链接:C 设计模式 链接:C 设计模式 - 访问者模式 命令模式(Command Pattern)是一种行为型设计模式,它将请求封装成一个对象,从而使你可以用不同的请求对客户进行参数化,对请求排队或记录请求日志…...
Flink源码解析之:Flink On Yarn模式任务提交部署过程解析
Flink源码解析之:Flink On Yarn模式任务提交部署过程解析 一、Flink on Yarn部署模式概述 Apache Hadoop YARN 在许多数据处理框架中都很流行。 Flink 服务提交给 YARN 的 ResourceManager,后者会在 YARN NodeManagers 管理的机器上生成容器。 Flink 将…...
C++算法20例
1、求两个数的最大公约数 int gcd(int a, int b) { 2 return b 0 ? a : gcd(b, a % b); 3} 2、判断素数 bool isPrime(int n) {if (n < 1) return false; for (int i 2; i * i < n; i) {if (n % i 0) return false;}return true; } 3、冒泡排序 void bubbleSort…...
雷军:科技传奇的逐梦之旅
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…...
python版本的Selenium的下载及chrome环境搭建和简单使用
针对Python版本的Selenium下载及Chrome环境搭建和使用,以下将详细阐述具体步骤: 一、Python版本的Selenium下载 安装Python环境: 确保系统上已经安装了Python 3.8及以上版本。可以从[Python官方网站]下载并安装最新版本的Python,…...
linux tar 文件解压压缩
文件压缩和解压 tar -c: 建立压缩档案 -x:解压 -t:查看内容 -r:向压缩归档文件末尾追加文件 -u:更新原压缩包中的文件 -z:有gzip属性的 -j:有bz2属性的 -v:显示所有过程 -O:…...
Razzashi Raptor
拉扎什迅猛龙 Razzashi Raptor 2024.12.24 无论是工作、游戏,除了坚持,还需要一点运气,2024年跨年啦。 World of Warcraft [CLASSIC]80猎人[Grandel][祖尔格拉布][血领主曼多基尔][拉扎什迅猛龙]20241231跨年回报_哔哩哔哩bilibili_魔兽 Ra…...
Fetch处理大模型流式数据请求与解析
为什么有的大模型可以一次返回多个 data? Server-Sent Events (SSE):允许服务器连续发送多个 data: 行,每个代表一个独立的数据块。 流式响应:大模型服务通常以流式响应方式返回数据,提高响应速度。 批量处理&#x…...
【网络安全实验室】脚本关实战详情
难道向上攀爬的那条路,不是比站在顶峰更让人热血澎湃吗 1.key又又找不到了 点击链接,burp抓包,发送到重放模块,点击go 得到key 2.快速口算 python3脚本 得到key 3.这个题目是空的 试了一圈最后发现是 4.怎么就是不弹出key呢…...
怎么配置每一次重启服务器后,自动启动Tocmat
前言 宝子们,今天来给大家详细讲讲服务器如何配置每次重启后自动启动 Tomcat,让你的服务器应用始终保持在线状态,高效运行! windows版本 在 Windows 系统下,有两种常用的方法可以实现这个目标。 第一种方法是利用服…...
《机器学习》——利用OpenCV库中的KNN算法进行图像识别
文章目录 KNN算法介绍下载OpenCV库实验内容实验结果完整代码手写数字传入模型训练 KNN算法介绍 一、KNN算法的基本要素 K值的选择:K值代表选择与新测试样本距离最近的前K个训练样本数,通常K是不大于20的整数。K值的选择对算法结果有重要影响,…...
D3.js
d3是用于数据可视化 可用于处理数据、创建图表、实现动画效果和交互功能应用场景: 数据可视:将复杂的数据以图表的形式展示出来,便于用户理解和分析。交互式图:支持事件处理和动画效果,提升用户体验。仪表盘和报:广泛…...
Windows onnxruntime编译openvino
理论上来说,可以直接访问 ONNXRuntime Releases 下载 dll 文件,然后从官方文档中下载缺少的头文件以直接调用,但我没有尝试过。 1. 下载 OpenVINO 包 从官网下载 OpenVINO 的安装包并放置在 C:\Program Files (x86) 路径下,例如…...
Python中的sqlite3模块:SQLite数据库接口详解
Python中的sqlite3模块:SQLite数据库接口详解 主要功能sqlite3.connect(database)connection.cursor()cursor.execute(sql)connection.commit()cursor.fetchall()connection.close() 使用示例执行结果总结 在Python中,sqlite3模块提供了一个与SQLite数据…...
Unity功能模块一对话系统(4)实现个性文本标签
本期我们将了解如何在TMPro中自定义我们的标签样式,并实现两种有趣的效果。 一.需求描述 1.定义<float>格式的标签,实现标签处延迟打印功能 2.定义<r" "></r>格式的标签,实现标签区间内文本片段的注释显示功能…...
Vue.js前端框架教程15:Vue父子组件之间的通信ref、emits
文章目录 1. 属性传递(Props)2. 事件监听( Emits)3. `ref` 引用4. `provide` 和 `inject`5. 插槽(Slots)在 Vue 3 中,父子组件之间的通信可以通过多种方式实现,包括属性传递、事件监听、插槽以及 ref 和 provide/inject。以下是这些通信方式的详解: 1. 属性传递(Pro…...
Python 实现 冒泡排序算法示例
冒泡排序算法示例 冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的列表,比较相邻的元素,并交换它们的位置,如果它们的顺序错误。这个过程会重复进行,直到没有需要交换的元素为止&#x…...
《机器学习》--线性回归模型详解
线性回归模型是机器学习中的一种重要算法,以下是对其的详细解释: 一、定义与原理 线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。线性回归…...
Django项目部署到服务器
文章目录 django项目部署到服务器在服务器上安装Django和依赖:项目代码上传配置数据库收集静态文件配置Web服务器配置Gunicorn(WSGI服务器)启动/停止/重载systemd服务。 django项目部署到服务器 在服务器上安装Django和依赖: su…...
CSDN编辑器
这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…...
如何免费解锁 IPhone 网络
您是否担心 iPhone 上的网络锁定?如果您的 iPhone 被锁定到特定运营商,解锁它可以连接到不同的运营商。好吧,我们为您准备了一份指南。 iPhone运营商免费解锁将是小菜一碟。在我们的解锁运营商 iphone 免费指南中。我们为您提供了一份简介&am…...
Trimble天宝X9三维扫描仪为建筑外墙检测提供了全新的解决方案【沪敖3D】
随着城市化进程的快速推进,城市高层建筑不断增多,对建筑质量的要求也在不断提高。建筑外墙检测,如平整度和垂直度检测,是衡量建筑质量的重要指标之一。传统人工检测方法不仅操作繁琐、效率低下,还难以全面反映墙体的真…...
微服务のGeteWay
目录 概念: 三大核心: 工作流程: 9527网关如何做路由映射: GetWay高级特性: 按服务名动态路由服务: 断言Route Predicate Factories : 获取当前时区时间: After Route &…...
Golang 中 Goroutine 的调度
Golang 中 Goroutine 的调度 Golang 中的 Goroutine 是一种轻量级的线程,由 Go 运行时(runtime)自动管理。Goroutine 的调度基于 M:N 模型,即多个 Goroutine 可以映射到多个操作系统线程上执行。以下是详细的调度过程和策略&…...
MyBatis使用的设计模式
目录 1. 工厂模式(Factory Pattern) 2. 单例模式(Singleton Pattern) 3. 代理模式(Proxy Pattern) 4. 装饰器模式(Decorator Pattern) 5. 观察者模式(Observer Patt…...
淺談Cocos2djs逆向
前言 簡單聊一下cocos2djs手遊的逆向,有任何相關想法歡迎和我討論^^ 一些概念 列出一些個人認為比較有用的概念: Cocos遊戲的兩大開發工具分別是CocosCreator和CocosStudio,區別是前者是cocos2djs專用的開發工具,後者則是coco…...
选择器(结构伪类选择器,伪元素选择器),PxCook软件,盒子模型
结构为类选择器 伪元素选择器 PxCook 盒子模型 (内外边距,边框) 内外边距合并,塌陷问题 元素溢出 圆角 阴影: 模糊半径:越大越模糊,也就是越柔和 案例一:产品卡片 <!DOCTYPE html> <html lang&q…...
CentOS 7系统 OpenSSH和OpenSSL版本升级指南
文章目录 CentOS 7系统 OpenSSH和OpenSSL版本升级指南环境说明当前系统版本当前组件版本 现存安全漏洞升级目标版本升级准备工作OpenSSL升级步骤1. 下载和解压2. 编译安装3. 配置环境 OpenSSH升级步骤1. 下载和解压2. 编译安装3. 创建systemd服务配置4. 更新SSH配置文件5. 设置…...
使用 Comparable 和 Comparator 接口对集合排序
使用 Comparable 和 Comparator 接口对集合排序: 1. 使用 Comparable 接口: 当你希望一个类的对象能够按照某种自然顺序进行排序时,可以实现 Comparable 接口 并重写 compareTo() 方法。 实现步骤: 1.1 实现 Comparable<T&g…...
最新常见的图数据库对比,选型,架构,性能对比
图数据库排名 地址:https://db-engines.com/en/ranking/graphdbms 知识图谱查询语言 SPARQL、Cypher、Gremlin、PGQL 和 G-CORE 语法 / 语义 / 特性 SPARQL Cypher Gremlin PGQL G-CORE 图模式匹配查询 语法 CGP CGP CGP(无可选)1 CGP CGP 语义 子…...
混合合并两个pdf文件
混合两个pdf 1、在线免费交替和混合奇数和偶数PDF页面2、有什么软件把两个 PDF 交叉合并?3、pdfsam本地合并 如何Google翻译的原文和译文合并,(沉浸式翻译效果相对较好) 1、在线免费交替和混合奇数和偶数PDF页面 https://deftpd…...
OpenCV-Python实战(9)——滤波降噪
一、均值滤波器 cv2.blur() img cv2.blur(src*,ksize*,anchor*,borderType*)img:目标图像。 src:原始图像。 ksize:滤波核大小,(width,height)。 anchor:滤波核锚点,…...
uniapp——微信小程序读取bin文件,解析文件的数据内容(三)
微信小程序读取bin文件内容 读取用户选择bin文件,并解析数据内容,分包发送给蓝牙设备; 文章目录 微信小程序读取bin文件内容读取文件读取内容返回格式 API文档: getFileSystemManager 关于App端读取bin文件,请查看&…...
Python 中常用的算法
1. 排序算法 用于将数据按特定顺序排列。 冒泡排序(Bubble Sort)选择排序(Selection Sort)插入排序(Insertion Sort)快速排序(Quick Sort)归并排序(Merge Sort…...
xadmin后台首页增加一个导入数据按钮
xadmin后台首页增加一个导入数据按钮 效果 流程 1、在添加小组件中添加一个html页面 2、写入html代码 3、在urls.py添加导入数据路由 4、在views.py中添加响应函数html代码 <!DOCTYPE html> <html lang...
Kubernetes: NetworkPolicy 的实践应用
一、Network Policy 是什么,在云原生领域有和作用 Network Policy 是 Kubernetes 官方提出来的一种网络策略的规范,用户通过编写符合对应规范的规则来控制 k8s 集群内 L3 和 L4 层的网络流量。 NetworkPolicy 主要的功能就是实现在云原生领域的容器网络管控它给用…...
计算机体系结构期末复习3:GPU架构及控制流问题
目录 一、GPU设计思路 1.简化流水线、增加核数 2.单指令多线程(SIMT) 3.同时驻留大量线程 4.总思路:多线程单指令多线程 二、GPU的控制流问题 1.什么是控制流问题 2.怎么应对分支分歧 一、GPU设计思路 1.简化流水线、增加核数 2.单指…...
excel怎么删除右边无限列(亲测有效)
excel怎么删除右边无限列(亲测有效) 网上很多只用第1步的,删除了根本没用,还是存在,但是隐藏后取消隐藏却是可以的。 找到右边要删除的列的第一个空白列,选中整个列按“ctrlshift>(向右的小箭头)”&am…...
ChatGPT-4助力学术论文提升文章逻辑、优化句式与扩充内容等应用技巧解析。附提示词案例
目录 1.扩写(expansion/paraphrasing) 2.优化(optimization) 3.缩写(optimization) 4.提取关键词(keyword extraction) 5.短语转换(phrase transformationÿ…...
C++和OpenGL实现3D游戏编程【连载19】——着色器光照初步(平行光和光照贴图)(附源码)
1、本节要实现的内容 我们在前期的教程中,讨论了在即时渲染模式下的光照内容。但在我们后期使用着色器的核心模式下,会经常在着色器中使光照,我们这里就讨论一下着色器光照效果,以及光照贴图效果,同时这里知识会为后期的更多光照效果做一些铺垫。本节我们首先讨论冯氏光照…...
html+css网页制作 美食 美食网5个页面
htmlcss网页制作 美食 美食网5个页面 网页作品代码简单,可使用任意HTML辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1࿰…...
Mac 12.1安装tiger-vnc问题-routines:CRYPTO_internal:bad key length
背景:因为某些原因需要从本地mac连接远程linxu桌面查看一些内容,必须使用桌面查看,所以ssh无法满足,所以决定安装vnc客户端。 问题: 在mac上通过 brew install tiger-vnc命令安装, 但是报错如下: > D…...
遥感图像车辆检测-目标检测数据集
遥感图像车辆检测-目标检测数据集(包括VOC格式、YOLO格式) 数据集: 链接: https://pan.baidu.com/s/1XVlRTVWpXZFi6ZL_Xcs7Rg?pwdaa6g 提取码: aa6g 数据集信息介绍: 共有 1035 张图像和一一对应的标注文件 标注文件格式提供了…...
51c自动驾驶~合集43
我自己的原文哦~ https://blog.51cto.com/whaosoft/12930230 #ChatDyn 上交大最新ChatDyn:一句话操纵三维动态 理解和生成真实的三维虚拟世界是空间智能的核心。所生成的三维虚拟世界能够为自动驾驶、具身智能等AI系统提供高质量闭环仿真训练场,高效…...
随机变量是一个函数-如何理解
文章目录 一. 随机变量二. 随机变量是一个函数-栗子(一对一)1. 掷骰子的随机变量2. 掷骰子的随机变量(求点数平方)3. 抛硬币的随机变量4. 学生考试得分的随机变量 三. 随机变量是一个函数-理解(多对一) 一. 随机变量 随机变量就是定义在样本空间上的函数…...
云计算在医疗行业的应用
云计算在医疗行业的应用广泛而深入,为医疗服务带来了前所未有的变革。以下是对云计算在医疗行业应用的详细解析: ### 一、医疗数据共享与整合 云计算平台具有强大的数据存储和处理能力,使得医疗数据共享与整合成为可能。通过云计算平台&…...