性能测试核心指标与压测实战:从并发模型到瓶颈调优
前阵子配合某电商模拟项目的会员积分系统做上线前性能摸底需求文档里就一句话系统需要支撑10万用户在线。但真跑到压测环境团队里立刻吵起来了——有人说要开10万线程有人说10万在线和10万并发是两码事还有人拿出“平均响应时间500毫秒”当结论可日志里很多请求都超过了3秒。我猜很多团队都经历过这种场面工具会用脚本能跑但一说到指标口径、场景设计、数据解读每个人理解都不一样。这篇文章不介绍某个具体工具怎么点按钮而是把性能测试的核心概念和一线经验整理成一条线先捋清楚每个指标到底在说什么再讲怎么把业务场景转成压测方案然后说说执行和监控的完整链路最后聊聊常见的瓶颈判断和调优思路。适合刚接触性能测试的测试工程师也适合写了几年脚本、但总觉得结果分析差点意思的朋友。1. 先把“度量衡”捋清楚性能测试到底在测哪几个数很多人一上来就问“测试工具能不能模拟10000个用户”但真正的问题往往是你要模拟的到底是哪一类用户性能测试里最容易产生歧义的就是这些名词概念口径不一致后面所有结论都是空中楼阁。1.1 并发用户数不是登录人数也不是在线人数并发用户数在教科书里的定义是“同一时间点对系统产生实际压力的用户数”可落到实际工作里这个定义依然很模糊。比如一个会员积分系统10万注册用户、1万在线用户、500个正在同时点击按钮的用户三者的“并发”含义完全不同。压测工具体系里说的“线程数”或者“虚拟用户数”指的是最后一种为系统持续产生业务请求的并发压力源。它不是在线人数的概念因为用户在线时大部分时间在看页面、想事情并没有给服务器发请求它也不是注册用户数那是业务规模概念跟系统承载能力没有直接关系。那怎么把“10万在线”换算成压测并发实际工作中可以按操作频率折算。假设这个积分系统高峰时段在线1万人单个用户平均每30秒操作一次那每秒约产生 10000 / 30 ≈ 333 个请求压测时用300左右并发线程就能模拟出接近真实的压力。如果需求方说“支持10万在线”按这个比例估算你需要的并发线程数大概就是 100000 / 30 ≈ 3300而不是直接开10万线程。很多刚上手的人恨不得线程数开得越大越好总觉得这样才能测出极限。但并发数只是手段目标是给系统施加符合业务模型的压力。线程开太多可能先把自己的施压机打垮测出来的数据反而是假的。1.2 响应时间一个数值远不够看分位值才是真相响应时间是最直观的指标但也最容易误读。压测报告里经常看到“平均响应时间180ms满足需求”可如果你同时看一眼最大响应时间可能已经超过了10秒。平均响应时间会被极少数慢请求拉高或稀释完全不能代表大多数用户的真实体验。真正该关注的是分位值TP95、TP99。意思是有95%或99%的请求响应时间不超过这个值。比如TP99是800ms说明100个请求里有99个都在800ms以内完成剩下1个可能要等好几秒。对于核心接口我通常会同时盯TP95和TP99如果TP99明显高于TP95说明存在一小撮性能毛刺往往是GC停顿、连接池排队或者外部依赖抖动引起的。还要明白一点响应时间不是“从点击按钮到页面展示”的完整时长。一个HTTP请求的耗时可以拆成网络传输时间、服务端排队时间、应用处理时间、下游依赖/数据库执行时间。用链路追踪工具能看到每一段的耗时。我曾经测过一个订单查询接口平均响应时间450ms拆开发现数据库查询占了320ms——应用代码再优化数据库慢查询不解决响应时间也降不下来。1.3 TPS、QPS和吞吐量别把三个名词混着用圈子里常把TPS和QPS混用严格来说两者有区别。QPSQueries Per Second指每秒查询/请求数偏网络和接口层面的度量TPSTransactions Per Second指每秒完成的事务数一个事务可能是多个请求的组合。比如“下单”这个事务包含提交订单、扣库存、支付三个请求抛开业务边界谈TPS多少是没有意义的。吞吐量的另一个关键视角是和并发数的关系。很多人做压测会发现一个现象并发数从100加到500TPS是往上涨的再往上加TPS不涨了甚至下跌。这就是系统的拐点。我一向建议压测时做成阶梯加压把“并发数-吞吐量”这条曲线打出来。曲线从上升到走平再到下跌每个阶段的含义完全不同——走平说明系统容量见顶下跌说明已经进入过载区出现了大量超时和重试。这里有一条很实用的换算公式来自排队论里的Little‘s Law简单记就是并发数 ≈ 平均响应时间 × 吞吐量。比如你设定目标TPS是2000压测时测出平均响应时间约200ms那么压测机的并发线程数大概要配到 2000 × 0.2 400。反过来也一样你用400线程压如果平均响应时间是300ms那理论TPS上限就是 400 / 0.3 ≈ 1333再往上压只能靠降低响应时间或者提高系统容量单纯加线程只会让响应时间越来越长。1.4 资源利用率与错误率两个看似简单、实际容易误判的指标资源利用率主要指CPU、内存、磁盘I/O、网络带宽这几项。一般经验是CPU使用率超过75%就要警惕了持续接近100%基本说明处理能力到顶了。但“CPU低、响应时间高”的情况更值得琢磨——资源没用满却响应慢通常不是在等CPU而是在等锁、等I/O、等网络回路这就指向另一个层面的瓶颈了。错误率也不是越低越好关键看错误类型和业务容忍度。接口超时返回5xx、连接被重置、并发冲突导致数据库死锁这些错误背后的问题都不一样。常规业务系统我一般要求整体错误率低于0.1%但不等于看到有错误就慌——压测到过载区域时错误率快速上升是正常现象正是你要找的边界信号。2. 测试类型那么多别做成了“一场压测走天下”性能测试不只是“跑一下看看快不快”。按目的区分常见的有负载测试、压力测试、稳定性测试、容量测试、并发测试等。每类测试回答的问题不同场景设计就完全不同。测试类型回答的核心问题典型的场景特征负载测试在预期压力下系统能不能达到性能指标模拟正常高峰流量验证响应时间、TPS等是否达标压力测试系统什么时候会扛不住扛不住时表现如何不断增加压力直到性能拐点观察系统降级表现稳定性测试长时间运行会不会出问题以70%~80%压力持续运行数小时到数天关注内存泄漏、连接泄漏容量测试现在这套配置能支撑多大业务量结合峰值流量预测测出最大支撑能力用于容量规划并发测试多个线程同时做某个操作会冲突吗固定高并发下执行同一类操作重点看数据一致性和锁问题我遇到的最常见误区是把“性能测试”等同于“压测跑到系统崩掉”。做负载测试时系统表现良好、做压力测试时系统会报错都是正常的关键是你拿的是什么数据、给领导讲的是什么结论。不能说一句“出错了”就完事要能讲清楚在什么压力下开始出错、错误类型是什么、错误率随压力如何变化。场景设计最核心的准则是“还原真实业务”。真的业务系统不会是均匀的请求流登录和浏览请求很多下单、支付请求相对少后台定时任务还有一波波峰的突发流量。压测脚本需要设置不同操作的比例权重和思考时间Think Time。思考时间指的是虚拟用户两次操作之间的间隔用户不是机器点完一个按钮总要看看页面再操作。完全没有思考时间的压测叫“浪涌压测”用来找系统的极限处理能力是有意义的用来验证线上业务容量时不合适会把结果做得过于悲观。还有数据准备也是场景设计的一环。压测不能把生产库的数据拿来随便摩擦自建的数据也要保证分布合理。如果库里只有几百条会员数据所有请求都打在同一页上缓存命中率高得离谱测出来的效果会明显好于真实情况误导容量评估。3. 一次完整压测的推进顺序从目标到结论的完整链路3.1 先定指标再定方案量化“要压到什么程度”拿到需求先别急着写脚本先确认“怎么算通过”。一个完整的性能目标至少要包含预期并发或预期吞吐量、目标响应时间建议分TP50/TP95/TP99三个层级、可接受错误率、运行时长。比如“会员积分查询接口在200并发下TP95小于500ms错误率低于0.1%持续运行15分钟”。如果需求方给不出指标就用现有数据进行估算。从监控系统拉前两周高峰期的请求量算出峰值QPS再乘1.5倍或2倍作为目标值这通常是比较稳妥的做法。目标定了方案才能落地用什么工具、压多少线程、分几个阶段施压、跑多久、看哪些指标。这里要区分“验证目标”和“探索容量”两种诉求。验证目标是回归测试思路在既定压力下看指标过不过。探索容量是摸高思路从低压开始逐步加压直到系统瓶颈画出性能曲线。很多时候两者会结合先阶梯加压找拐点再在拐点的80%位置做一轮较长时间的稳定性验证。3.2 脚本和参数化的细节脚本像话结果才像话脚本阶段有四个关键点参数化、关联、断言、请求配置。参数化最容易被忽略——所有并发用户都提交同一个商品ID或同一个用户ID数据库层面会变成一堆热点行竞争锁等待飙升响应时间数据直接失真。要让虚拟用户从一批真实分布的数据里取值比如随机取10000个会员ID中的任意一个。关联主要用于动态取token、session等上下文。有些内部系统做了CSRF校验或登录态校验脚本不处理关联所有请求都会因未登录而失败压测变成了“验证错误页面能不能抗压”结论完全无效。断言要设置得精确但也不能太宽松。只看“HTTP 200”会把业务错误当成成功接口返回200但业务码是失败这种情况经常发生。我一般会加响应的业务码断言同时设置超时断言方便观察“这类错误”在压力上升后的变化趋势。关于监听器我见过很多人在GUI界面上堆了一堆图表插件看着很炫实际压测机性能被监听器消耗了大半。真正执行压测时尽量跑在命令行模式结果用保存的日志数据画图或者交给分析脚本处理。3.3 执行过程的分层推进先冒烟再摸高再回归正式压测不要一把梭直接上高并发。我的习惯是先做一轮小并发冒烟测试用几十个线程跑一遍流程确认脚本没有报错、断言通过、监控数据能正常采集。这一步能省下后面大量排查时间。然后做阶梯加压。常见做法是每3到5分钟增加一批并发用户比如从50并发起步分为50、100、200、400、600逐级推进。每一级停留的几分钟里观察TPS、响应时间、错误率和资源使用情况的联动关系。这样可以比较清晰找到性能曲线的拐点位置。做压力测试时我一般会再多压两三级让系统明确进入过载区观察它在过载时的表现是优雅降级还是直接雪崩超时请求是否滚雪球恢复机制是否起作用。发现瓶颈、代码或配置调整之后一定要重新跑一轮完整压测做回归。只改了几个参数就只压其中一段流程等于没有验证全局。修改后的结果要和基线数据放在一起对比尤其是TP99和错误率这两项。3.4 压测环境和施压机的那些“隐形坑”压测环境本身也会影响结果。首先要保证施压机和服务器的时钟同步否则取时间戳统计数据时出现负数偏差会干扰分析。其次施压机自己不能成为瓶颈如果已经跑满CPU或者网络带宽占满压出来的压力值就不准确测的不是系统能力而是“施压机能力”。环境里还有一个令人头疼的问题是日志与中间件的并发能力。压测过程中如果应用日志级别开成了DEBUG磁盘I/O瞬间被打满Tomcat或数据库连接数没调大压测一开始连接池就耗尽。启动压测前检查日志级别、文件句柄数、连接池上限都是常规动作。我在一轮压测前会把服务端的核心中间件连接数配置拍个快照压测后对比连接数增长曲线这能反映连接管理是否正常有没有泄漏迹象。4. 数据能不能信取决于监控够不够全压测过程里数据收集不完整结果分析就算“巧妇难为无米之炊”。监控至少要分成端到端、资源、应用、中间件四个层面来看。4.1 从端到端到全链路监控数据应该怎么看最外层是端到端监控也就是压测工具统计的响应时间、TPS、错误率。这层数据说明“系统表现如何”但不说明“为什么”。请求慢是慢在网络还是服务端端到端数据没法回答。第二层是资源监控CPU、内存、磁盘、网络。这一层能判断是不是资源耗尽导致的问题。但注意资源高不一定是坏事——压测的目的之一就是把资源打上去关键看资源利用率和TPS的关系是否合理。第三层是应用监控JVM堆内存、GC频率和停顿时间、活跃线程数、数据库连接池活跃/空闲连接数。这层能发现很多隐藏问题。比如堆内存随着压测时间逐渐上升GC频率越来越频繁大概率存在内存泄漏线程数持续上涨不回落可能是请求在阻塞等待外部依赖。第四层是中间件监控数据库的慢查询日志、连接数、锁等待消息队列的积压量缓存服务的命中率和过期情况。系统调用链里某一环出现积压或拒绝会直接影响端到端指标。4.2 用“二分法”快速缩小瓶颈范围当压测结果显示响应时间升高怎么快速定位是哪里出了问题我常用的思路是数据二分先看资源利用率与响应时间的关系再看应用线程状态最后看下游依赖。如果资源利用率高、响应时间高重点查资源竞争CPU跑满就找热点代码和频繁GC内存高就查对象分配和回收磁盘I/O高就查日志写入和磁盘性能。如果资源利用率不高、响应时间高重点就转到等待上了线程阻塞在哪、数据库连接是否在排队、网络是否是重传导致的延迟。这时候JVM线程dump是救命工具——每隔几秒抓一次线程栈观察大量线程卡在哪个方法上基本就能锁定问题模块。如果前面两个方向都没查到异常那就该怀疑外部依赖了缓存服务抖动、消息队列响应慢、外部接口调用超时。在压测时把调用链跟踪和慢请求日志打开很多问题都能直接对号入座。4.3 压测数据的几个“误判雷区”读数据时这几个情况很容易误判。第一个是只看平均值。平均响应时间被少量长尾请求拖住时要结合TP99来看如果TP99高而TP50低说明大部分用户体验尚可但每100个用户里有几个体验很差这种毛刺往往对应瞬时资源竞争。第二个是忽略错误率的“时间分布”。一小时内错误率是0.3%看起来不高但如果所有错误都集中在某一次GC长停顿的30秒里这是系统稳定性问题不是偶发异常。看错误数据要结合时间段和当时的监控状态。第三个是T恤“TPS下降”分析不够细。过载区TPS下降可能是因为响应时间过长导致单位时间内完成的请求数变少也可能是系统开始丢弃请求。前者还能勉强服务后者已经在拒绝流量需要区分对待。压测结束后我习惯整理一份“数据结论”表每个压力档位的并发数、TPS、响应时间分位值、错误率、资源利用率放同一行这样趋势一眼就能看清方便向团队展示拐点在哪、瓶颈在哪。5. 压出问题之后一线常见的瓶颈类型与调优思路性能测试最大的收益不是“测过了”而是“发现了问题并解决”。常见的性能瓶颈集中在数据库、应用线程池与连接池、中间件配置、代码与数据结构这几类。5.1 先从资源利用情况入手不做无头苍蝇式调优拿到压测结果先不要一上来改代码要按照“资源—连接—线程—代码逻辑”的顺序排查。同一个“响应时间高”的现象起因完全不同现象可能原因优先排查项CPU占用高、TPS低热点代码、频繁GC、死循环CPU火焰图、JVM GC日志内存占用持续上涨内存泄漏、缓存无限增长堆dump观察老年代增长曲线数据库连接池耗尽连接不释放、池上限过小连接池监控、活跃连接数曲线线程大量BLOCKED/WAITING锁竞争、外部依赖慢线程dump看堆栈卡点磁盘I/O饱和日志过多、慢查询刷盘、磁盘性能差日志级别、iostat监控5.2 数据库侧最常见的三类“罪魁祸首”数据库往往是性能瓶颈的重灾区。第一个是慢SQL和索引缺失。压测中发现某查询接口在并发上升后响应时间飙升打开慢查询日志一查SQL没有走索引数据量大了之后全表扫描的代价就暴露了。给表加上合适索引后同样的压力下响应时间下降了60%。第二个是连接池配置过小。数据库连接池默认上限只有10~20个的情况下压到稍高的并发请求就在池子外面排队表现为“应用CPU不高、响应时间等数据库连接”。连接池大小不是越大越好每个连接都占数据库资源通常按 Tomcat线程数×单个请求占用数据库时长/目标响应时间 估算。一个常见做法是先设成“最大并发用户数”的1/5到1/10再通过压测逐步调整。第三个是锁等待和长事务。某个事务里调用了外部服务、耗时好几秒事务期间一直占着数据库连接和行锁并发一高后面的事务全部排队。解决思路是把长事务拆短、把外部调用挪出事务实在不能拆的就要评估对数据库锁的影响。5.3 应用层的线程池、连接池与GC参数改改能救回来一大截应用层最常见的性能问题在线程池和连接池配置。Tomcat默认最大线程数在很多系统里并没有按流量调过压测时线程数先耗尽请求开始在队列里排长队。配置的时候要估算如果目标TPS是1000平均请求处理时间100ms单个线程每秒能处理10个请求理论上需要100个线程。这个估算值和实际合理配置相差不会太大。再比如数据库连接池、HTTP客户端连接池、Redis连接池都要根据各自的容量单独评估。某个系统在压测时发现调用外部接口的超时率突然升高排查发现是HTTP连接池的maxConnections设成了20并发一高就排队等待连接调大到200后问题立刻缓解。JVM的GC问题也值得留意。压测过程中看GC日志如果Full GC频次高、停顿时间长响应时间的TP99就会明显拉高。通常会先检查堆内存配置是否合理、再看代码里是否有频繁创建大对象的逻辑通过对象分配分析器找出来源。5.4 调优之后的回归验证不只是“跑一遍没问题”调优完成后一定要回归压测而且要对比同一压力档位下的数据变化。我会保留一份基线报告对比每个档位的TPS曲线和响应时间分位值确认调优不是“拆东墙补西墙”比如为了降低响应时间把缓存加得很大结果内存GC压力反而上来了这种场景并不少见。回归时还要注意稳定性尤其改动涉及连接池、线程池参数后单轮15分钟压测看不出问题需要拉长到1~2小时观察资源曲线是否平稳。连接泄漏往往要跑到一定时长才显现。6. 走过几轮压测之后几条一直在用的实在经验最后聊几句不容易写进规范文档里的经验。第一功能正常不等于性能没问题。性能问题是流量和并发放大之后才暴露的测试环境里100个用户跑得顺畅不代表扩容到500个用户还稳。很多团队只做“功能验证”就上了线结果大促一到超时、报错、宕机一起出现。即使没有完整性能测试的条件也建议做一轮最低成本的冒烟压测至少知道系统的拐点大体在哪。第二测试数据的构造直接决定可信度。造数要符合真实分布不要偷懒造几万条整整齐齐的流水。如果业务数据有冷热之分压测时也要模拟出热数据集中访问、冷数据低频访问的形态否则压测结论文案写得再漂亮也经不起复盘。第三性能测试报告不能只会报数。核心接口、应用服务器的指标数据之外还要把结论翻译成业务语言当前系统容量是日均订单量的几倍、峰值时刻多长的响应时间延长时间是可接受的、出现问题时应该让哪些模块优先降级。这是沟通成本最低的方式也是性能测试工作价值被看到的关键一环。第四有条件就在开发阶段引入简单的性能冒烟而不是到上线前才集中压测。哪怕只是用工具对新接口自动跑一轮20并发持续2分钟的小压测都能把很多低级问题提前暴露出来。修复成本比上线前才纠正要低得多。做性能测试这些年我的体会是它的门槛不高但天花板很高从“能压出数据”到“数据能说明问题”中间差的不是工具技巧而是对概念的准确理解和对系统的整体认知。希望这篇梳理能帮你把零散的知识串成一条线少走几步弯路。

相关新闻

输配电网互补优化中的不确定性建模:场景法MATLAB实现与调参避坑

输配电网互补优化中的不确定性建模:场景法MATLAB实现与调参避坑

简介:针对高比例可再生能源接入带来的不确定性,这套代码实现了一种考虑输配电网协调的互补优化方法,聚焦日前市场与实时市场下TSO与DSO之间共享灵活资源的协调机制。面向电力系统优化、配电网运行以及电力市场方向的研究人员与工程师&#xf…

2026/10/13 18:43:45 阅读更多 →
VC++ GDI+自绘工业信号灯控件:从状态建模到动画插值实战

VC++ GDI+自绘工业信号灯控件:从状态建模到动画插值实战

1. 需求场景与方案取舍:为什么非要用 GDI 不可1.1 哪个项目的需求逼我上了自绘这条路先说背景。我之前做一个工业设备的管理软件,界面左侧是一整排设备状态卡片,每个卡片上都有三个信号灯式的状态指示:运行、告警、停机。需求刚出…

2026/10/13 18:42:45 阅读更多 →
Agent跑不起来?用状态机+统一工具协议构建稳定运行机制

Agent跑不起来?用状态机+统一工具协议构建稳定运行机制

去年我在一个内部项目里负责把大模型从“聊天窗口”搬到“干活现场”,折腾了很久才发现一个扎心的事实:让大模型说一段漂亮话很简单,但让它稳定地跑完一个真实任务,难得多。当时我们尝试了不少 Agent 框架,Demo 阶段个…

2026/10/13 18:42:45 阅读更多 →

最新新闻

Python超市管理系统源码实战:Flask+SQLite收银库存全流程

Python超市管理系统源码实战:Flask+SQLite收银库存全流程

简介:这是一份面向Python初学者与课程设计学习者的超市管理系统源码包,围绕员工管理、客户管理、登录验证与商品库存记录等日常运营场景展开,适合用来练习GUI界面搭建、文件持久化存储与模块化组织方式。压缩包共13个文件,约8KB&a…

2026/10/13 22:18:56 阅读更多 →
AI制图实测:10分钟生成架构图与流程图

AI制图实测:10分钟生成架构图与流程图

相信不少朋友都经历过这样的场景:刚画完一张系统架构图,产品经理又改了两版需求;刚理清一条业务主线,对接方又加了三个分支。画图这件事,听着很轻松,真正动手才发现,框要对齐、线要避开交叉、字…

2026/10/13 22:18:56 阅读更多 →
AI编程大模型免费活动的技术真相与工程实践指南

AI编程大模型免费活动的技术真相与工程实践指南

1. 项目概述:这不是“薅羊毛清单”,而是一份AI编程模型能力演进的实时观测日志“最新免费AI编程大模型活动汇总 2026年10月8日更新”——这个标题乍看像电商促销页,实则藏着当前AI工程落地最真实的脉搏。我从2023年起持续跟踪国内大模型在开发…

2026/10/13 22:18:56 阅读更多 →
PyTorch目标检测实战:小黄人检测从数据准备到模型训练全流程

PyTorch目标检测实战:小黄人检测从数据准备到模型训练全流程

最近用PyTorch做图像识别练习,选了个特别有画面感的入门任务——小黄人检测。目标检测这个名字听着有点唬人,但拆开其实就两件事:先把图片里的小黄人找出来,再用矩形框把它框住。上学那会儿做这类需求,第一反应是搞滑动…

2026/10/13 22:18:56 阅读更多 →
矩阵置零:原地算法与状态管理,LeetCode 73 题全解析

矩阵置零:原地算法与状态管理,LeetCode 73 题全解析

矩阵置零这个题,我第一次在刷题平台上看到时,内心是有点不屑的:两层循环,遇到 0 就改行改列,这不是有手就行?可当我真的原地写起来,才发现完全不是那么回事。题目本身很短:给定一个m…

2026/10/13 22:18:56 阅读更多 →
利用阿里云alidns实现DDNS动态解析:公网IP变化自动更新教程

利用阿里云alidns实现DDNS动态解析:公网IP变化自动更新教程

家里的宽带每隔一段时间公网IP就会变,尤其是不满运营商最长在线时长之后强制断线重拨的那种,老域名解析记录一直是旧IP,访问家里NAS或者是远程桌面全都得靠临时记IP来连,烦得不行。后来我把域名托管到了阿里云云解析,直…

2026/10/13 22:17:56 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →