系统整体优化思路:架构师如何从救火到体系化治理
做架构师这些年被问得最多的一句话是系统卡了怎么优化如果回答只有“加缓存、加机器”八个字那基本还在开发思维里打转。真正意义上的系统整体优化思路不是针对某个慢接口的救火行动而是站在业务目标、资源成本、系统稳定性和长期演进空间之间做一套全局决策。这篇文章是架构师从入门到进阶系列里第三章的第一节核心就是讲清楚这套整体优化思路先想明白优化什么再画出全貌最后按投入产出比分步落地。适合刚转架构岗位的同行也适合被线上问题追着跑、想把救火变成体系化治理的人。1. 先把“整体优化”拆透它到底在优化什么1.1 整体优化不是性能调优很多新手会把“整体优化”等同于“性能调优”这是第一个认知误区。性能调优关注的是单个接口快不快、单个服务吞吐够不够而整体优化关注的是整个系统在业务压力下能不能稳定、经济、可持续地运行。性能只是其中一个维度。举个例子。某订单查询接口响应变慢开发同学很快定位到一条数据库慢查询加完索引后接口确实快了一些但过两天又慢了而且这次是整个订单服务都不响应。后来查下来真正的原因在上游某个依赖服务连续超时触发了大范围重试请求像潮水一样反复打到订单服务把数据库连接池全部占满。加索引只是解决了表面现象没有解决链路里“重试风暴”这个系统级问题。整体优化要求你在动手之前先把问题放到完整链路里看一遍请求从哪里来经过哪些服务每个环节的容量水位如何失败时会发生什么。这个过程不能省省了就是在赌运气。1.2 整体优化的三组边界边界如果不定义清楚优化很容易变成无底洞。我习惯把优化问题拆成三组边界来问边界要回答的核心问题业务边界这个优化到底对哪个业务指标负责时间边界是解决今晚的故障还是解决未来半年的容量问题成本边界投入这么多机器和人力单位成本真的下降了吗业务边界决定优化方向。如果业务目标是让用户下单更快那优化重点可能是下单链路的延迟如果业务目标是支撑大促峰值那优化重点可能是容量和限流降级。方向错了后面做得越多越浪费。时间边界解决的是“救火”和“治病”的平衡。线上已经快挂了当然先扩容、限流、降级把火扑灭但火灭了不代表结束还得安排时间去治理根因否则下个月还得再救一次。整体优化要求你把两种动作分开排期不能只救火不治病。成本边界是最容易被忽略的。优化不是不计代价地把性能拉满而是让每单位成本带来最大收益。后面我会专门展开讲成本维度这里先记住一个原则技术指标本身没有意义只有和成本、业务收益绑定在一起优化决策才成立。1.3 先全局后局部木桶的板是动态的做整体优化最常用也最有效的思考方式是木桶效应系统能力取决于最短板。但实际系统里的“短板”是会漂移的。今天数据库是瓶颈明天可能缓存命中率下降导致带宽打满后天可能第三方接口抖动把整个链路拖垮。所以先全局后局部不是画一张静态架构图然后找短板而是建立一套能持续发现“短板漂移”的机制。这套机制包括链路追踪、监控告警、容量评估、定期压测。有了这些基础数据你才能知道当前的瓶颈在哪个环节优化完一个短板后下一个短板又出现在哪里。我见过一个团队花大力气把缓存命中率从70%提到了95%结果发现数据库压力确实下来了但缓存集群的内存和带宽成了新瓶颈。他们没有先做容量评估就直接上缓存结果把压力从左边挪到了右边整体情况并没有变好。这就是典型的没有全局视角。2. 四个核心维度性能、成本、可用性、可维护性整体优化只盯着性能远远不够。我习惯把它拆成四个维度每次优化方案都要在这四个维度里打勾确认性能、成本、可用性、可维护性。四个维度一起看才能避免“拆东墙补西墙”。2.1 性能指标选不对优化全白费说到性能第一件事不是优化而是把指标定义清楚。很多团队只看平均响应时间这是最容易骗人的指标。一个接口平均耗时200毫秒看着一切正常但P99可能已经到2秒了意思是100个请求里有99个在2秒内返回剩下的1个请求可能要等好几秒。这1%的用户体感就是“系统很卡”但你平均耗时看不到。正确的做法是同时关注几个百分位指标P50代表典型体验P99代表绝大多数体验P999代表极端情况。优化目标通常用P99而不是平均值来定因为平均值掩盖了长尾问题。响应时间和吞吐量之间还有一个粗略换算关系单线程理论吞吐 ≈ 1000 / 平均耗时(毫秒)举个例子一个接口平均耗时50毫秒单线程每秒最多处理20个请求。100个线程并发理想情况下每秒能处理2000个请求。当然实际还要考虑CPU核数、上下文切换、锁竞争这只是估算基线。性能优化的决策必须建立在这些量化数字上而不是“感觉某个接口慢”。没有基线数据就动手优化完都不知道自己到底有没有变快。2.2 成本让每一分钱都花在刀刃上成本维度容易被技术人员忽略但架构师必须算这笔账。成本不只是机器费用还包括存储、带宽、人力维护成本。整体优化里一个非常重要的指标是“成本效率”单请求成本、单笔交易成本。优化后如果单请求成本下降才是真正有价值的优化。举个例子。某系统的日志数据量增长很快所有日志都放在高性能存储上存储成本越来越高。后来做了冷热分层最近7天的日志放在高性能存储7天前的日志自动沉降到低成本的归档存储。查询热数据走高性能存储查询冷数据走归档存储热查询性能没降存储成本却直接降了一半多。这就是成本维度的经典优化。还有一种情况更常见某个接口QPS上不去你直接加机器。表面看性能达标了但如果一个请求的正常CPU消耗很低只是数据库连接池不够用那加机器就是浪费。正确的做法是调大连接池、优化连接复用可能一台机器都不用加。2.3 可用性优化不能拿稳定性换优化方案如果不顾可用性就是给自己埋雷。比如为了提升性能引入缓存但没考虑缓存雪崩缓存服务挂了所有请求直接打到数据库数据库瞬间被打垮。再比如为了削峰填谷引入消息队列但没考虑消息堆积下游消费不过来业务延迟越来越大。整体优化里任何方案都必须回答一个问题如果这个优化组件出了故障系统会发生什么有没有降级方案有没有限流兜底有没有隔离机制高可用设计的一些基本手段每次优化都要过一遍关键服务冗余部署、调用设置超时和重试上限、入口设置限流和熔断、非核心功能降级开关、核心链路单独隔离。这些手段不是每个场景都要全部用上但至少要在方案评审时明确哪些场景需要覆盖。2.4 可维护性没人能看懂的优化等于埋雷有一种优化方案技术很炫收益很高但三个月后团队里没人敢碰它。一到故障就得拉原本写方案的老员工回来大家都看着一个复杂的多级缓存结构不敢动。这种优化的长期成本非常大。我见过一个团队为了极致性能做了一套三级缓存每级缓存都有自己的过期策略和更新策略中间还有消息异步刷新。平时性能确实很好但有一次缓存数据不一致线上出现资损整整排查了一天最后只能临时关掉两级缓存恢复服务。事后复盘所有人都承认这个方案太复杂了维护成本远超收益。整体优化里可维护性必须和技术方案一起设计。能简化的尽量简化不能简化的必须有清晰的文档、监控和应急手册。优化是给团队后续迭代铺路不是在路上埋雷。3. 可落地的整体优化框架五步走有了认知框架还需要一套能落地的操作流程。我把整体优化拆成五步这套流程我用在很多系统上几乎可以照搬。3.1 第一步梳理现状先画全貌不要一上来就改代码。第一步是梳理现状包括四件事系统架构图、核心调用链、流量水位、资源水位。系统架构图要画到服务级别标清楚每个服务依赖了哪些存储、哪些中间件、哪些外部系统。核心调用链要能看明白一次完整请求经过的路径和耗时分布。流量水位要有入口QPS、各服务QPS、数据库QPS、消息队列积压量。资源水位要看CPU、内存、磁盘IO、网络带宽、连接池使用率、GC频率。这一步通常要借助监控系统、链路追踪平台、容量管理平台。关键是把这些数据导出成一份基线报告作为后面所有优化的对比基准。没有基线后面优化效果根本说不清。3.2 第二步定义目标和目标对齐优化目标不能写成“提升系统性能”太模糊。要写成可以和业务对齐的指标比如支撑大促峰值10000 TPSP99响应时间小于200毫秒整链路可用性从99.9%提升到99.99%单笔交易成本下降20%核心接口P99从800毫秒降到300毫秒目标要能量化、有时限、有责任人。另外目标还要和业务方达成一致如果业务方根本不关注P99只关注下单成功率那你的优化重点就得调整。3.3 第三步识别瓶颈找到那个会漂移的短板识别瓶颈最常见的办法是压测。全链路压测逐步加压观察各个服务和资源的拐点看哪个环节先到达极限。数据库如果先到瓶颈优先优化数据库如果网关连接数先打满就要先处理网关。常见需要关注的技术指标包括CPU使用率是计算密集还是等待密集内存使用率是否有内存泄漏、GC压力磁盘IO日志写太多还是数据量太大网络带宽大响应体还是跨机房调用太多线程池状态活跃线程数、队列积压量连接池状态是否频繁等待获取连接GC情况Young GC频率、Full GC频率压测时要注意一点瓶颈是会转移的。你解决了数据库慢查询下一轮压测可能发现网络带宽又不够了。所以压测要分层记录数据不要只盯住一个指标。3.4 第四步分层优化按ROI排序识别出瓶颈后你会得到一堆可以做的事。这时候不能凭喜好决定顺序要按ROI排序也就是“投入产出比”。我通常列一张类似下面的表优化项预估收益改动成本风险优先级数据库慢查询优化高低中先做入口限流和降级高中低先做核心链路扩容中高低评估后做引入分布式缓存中中高谨慎做异步化改造中高高排后做低风险高收益的先做高风险高收益的放在演练充分后再做。整体优化不是一次把所有事情做完而是不断重复这个排序过程每一轮都挑当下最划算的事情做。3.5 第五步验证与回归把优化变成闭环优化上线不是终点验证才是。比较稳妥的做法是灰度发布先让少量流量验证指标是否达标再逐步全量。有条件的情况下做A/B对比或者全链路压测确保优化后的系统能扛住预期流量。验证完一定要回看最初定义的目标目标达成了吗如果没有是优化力度不够还是目标定得太激进如果有副作用是哪个环节出了问题最后把这次优化的背景、方案、数据、结论沉淀下来写进文档或知识库更新监控大盘和容量模型。这样优化才不是一次性冲刺而是不断迭代的体系动作。4. 分层优化实操从入口到数据的落地细节整体优化最后要落到具体分层动作。我习惯把系统分成三层来看入口层、应用层、数据层。每一层的优化重点和方法都不一样。4.1 入口层DNS、CDN、网关入口层是流量进入系统的第一道关卡也是最先能感受到压力的地方。DNS层面可以做智能解析让用户就近接入最近的机房静态资源走CDN大幅减少源站带宽和请求量。网关层通常做几件事限流、熔断、灰度路由。最常见的做法是在网关给每个客户端或用户维度设置限流阈值防止某个突发流量把整个系统打垮。如果某个下游服务开始超时网关要能自动熔断快速失败而不是一直等超时。这里有一个容易被忽略的点网关本身也会成为瓶颈。网关的连接数、转发性能、日志写入速度都要提前做容量评估。入口层优化的好处是见效快、风险低基本不用改业务代码。如果网关已经能扛住大部分流量压力后面应用的稳定性会明显改善。4.2 应用层代码与线程池的优化细节应用层的优化空间最大但也是最容易陷入局部优化的地方。我从代码和线程池两个角度来说。代码层面常见的性能杀手包括循环里反复创建对象、无意义的序列化、连接没有复用、大对象频繁拷贝。这些优化点很多有静态检查工具能扫出来但更重要的是一轮Code Review时专门去看热点路径上的代码。热点路径通常来自监控里的Trace数据不是靠感觉猜的。线程池是应用层最容易出问题的地方之一。线程池参数不是拍脑袋定的可以根据简单的排队理论估算所需并发线程数 ≈ 平均耗时(毫秒) × 目标QPS / 1000举个例子某个接口平均耗时100毫秒目标支撑500 QPS那么理论并发线程数就是100毫秒 × 500 QPS / 1000 50。也就是说大约需要50个线程同时在跑才能达到500 QPS的吞吐。当然这是理想值实际还要考虑CPU核数、任务类型。IO密集型可以开多一些CPU密集型不能超过核数太多否则线程切换本身就把CPU吃掉了。这里有一个实操心得线程池参数的调整一定要配合压测验证。不要照搬网上的“标准配置”不同系统的任务耗时、IO模型、依赖情况都不一样必须用压测数据说话。4.3 应用层缓存与异步化怎么用才不踩坑缓存是整体优化里最常用的手段但也是最容易踩坑的手段。缓存分为本地缓存和集中式缓存。本地缓存性能最高但每个实例一份数据存在一致性问题集中式缓存共享一份数据一致性更好但多一次网络开销。选择哪级缓存取决于你的业务对数据一致性的容忍度。配置信息、商品基础信息这类变化频率低、允许短时间不一致的数据适合放本地缓存订单状态、库存这类强一致要求高的数据尽量不缓存或者只放集中式缓存并且做好失效策略。异步化是另一种重要手段核心思路是“削峰填谷”。秒杀场景里瞬间涌入的请求如果全部同步处理下游数据库根本扛不住。把请求先写到消息队列下游按照自己的消费能力慢慢处理这样系统不会在峰值瞬间被打垮。但异步化有一个代价链路变长、排查变难还需要处理消息重复、丢失、积压等问题。引入异步化之前先确认业务能不能接受异步带来的延迟以及有没有对应的监控手段。4.4 数据层索引和分库分表的正确姿势数据层往往是整个系统压力的终点大部分性能问题最终都会暴露在数据库上。索引优化是最基础的操作。慢查询日志要定期分析常见的优化手段包括创建覆盖索引减少回表、避免在索引列上做函数转换、避免隐式类型转换、深分页优化。举个深分页的例子limit 100000, 10这种写法数据库要扫描前面10万行再丢弃很慢改成基于游标的写法where id 上次查询的最大id order by id limit 10直接走索引定位性能能提升一个数量级。分库分表不是银弹一定要放在最后考虑。很多系统的数据量看起来大但真正热的数据并不多。先做数据归档和冷热分离把历史数据挪出去线上数据量可能一下就降下来了。只有确认单库单表已经扛不住写入和查询压力才需要分库分表。分库分表会引入分布式事务、跨库查询、主键生成一堆复杂度不到万不得已不碰。数据库和缓存的一致性也是一个经典难题。比较稳妥的模式是Cache Aside先更新数据库再删除缓存读的时候先读缓存没有则读数据库并回填缓存。但即便如此极端并发下仍可能出现缓存和数据短暂的差异。所以强一致性的业务场景不要依赖缓存让缓存只服务于那些能容忍最终一致的功能。4.5 一个容量计算的小例子抽象讲太多还是来个具体的计算过程。假设你负责一个交易系统活动峰值流量是每秒10000个请求平均值是每秒1500个请求单机当前能扛住500 QPS。如果完全按峰值同步处理需要的机器数是10000 / 500 20台如果引入消息队列做削峰填谷上游只要保证能把消息快速写入队列下游按自己的消费能力处理。假设下游单机消费能力还是500 TPS但只需要满足平均吞吐1500 TPS那么机器数可以降到1500 / 500 4台当然这个计算很粗略。因为消息队列的写入能力、下游消费积压的延迟、数据最终一致性能不能被业务接受都需要额外评估。但思路是清晰的削峰填谷的目的不是消灭峰值而是让峰值不要直接打到最脆弱的系统上。容量规划的每一步都需要压测验证千万别只靠公式。5. 踩坑实录整体优化最容易翻车的地方这些坑我基本都踩过或者见过别人踩拿出来复盘一下比看理论有用。5.1 只看平均值被P99出卖有一段时间我们优化一个查询接口上线后看监控大盘平均耗时从400毫秒降到了180毫秒大家都很满意。直到有用户反馈“某个页面偶尔卡好几秒”我们才去细看百分位指标发现P99确实降了但P999从1.5秒涨到了3秒多。也就是说极端长尾请求反而变慢了。原因是这次优化牺牲了极端场景下的稳定性把一部分请求改走了一条和主链路抢占资源的路径。平均值掩盖了这个副作用。从那以后我的监控大盘上永远同时看P50、P99、P999任何优化方案都至少关注P99的变化。5.2 局部优化成了全局隐患还有一次印象很深的故障。多个团队各自优化自己的服务每个服务都加了重试机制超时时间也各自调短。结果下游某个服务抖动上游A重试重试请求打到BB也重试再打到C最后C承受了几十倍放大流量直接雪崩。整体优化最忌讳的就是“每个团队只对自己局部负责”。做优化前端到端梳理一次链路明确每个环节的超时时间、重试次数、重试策略。全局统一约定比如外部调用最多重试一次、重试要加随机抖动、关键链路上不做放大性重试。局部最优不等于全局最优很多故障就是局部“加固”出来的。5.3 优化后没有余量一有风吹草动就雪崩有个系统经过一轮优化CPU利用率从85%降到了45%机器数量没变。看起来性能余量很大大家松了口气。结果没过多久新业务接入悄悄把资源水位又拉回到了80%以上。某次下游依赖抖动系统直接没有余量扛住服务大面积超时。优化释放出来的资源不是用来继续塞满的而是用来建立缓冲区。我习惯给系统保留至少20%到30%的容量余量同时要做弹性伸缩预案。优化后更新容量模型让所有人都知道当前水位在哪个位置什么时候该扩容什么时候该限流。整体优化不是一次性把资源榨干净而是让系统具备应对不确定性的空间。5.4 缓存一致性看着对用起来全是坑缓存雪崩、缓存击穿、缓存穿透这些词大家都听过但真正出事往往是在更新顺序上。一个常见错误是先更新缓存再更新数据库。业务请求把缓存改成了新值紧接着数据库更新失败缓存里就一直是错误的新值用户看到的数据和实际数据不一致甚至直接影响资金计算。我的建议是缓存更新尽量遵循“先更新数据库再删除缓存”的方式并且删除缓存失败要有补偿机制。更重要的是在设计一个功能时就想清楚这里允不允许最终一致如果不允许就别用缓存做数据源只把缓存当作纯粹的加速层数据读取还是以数据库为准。5.5 缺少基线优化效果说不清没有优化前的基线数据这是很多团队最容易犯的错。上线前系统已经慢了一堆人凭感觉说“好像快了”拿不出实际对比数据。等出了问题连到底是变好了还是变坏了都说不清楚。所以每次优化第一步就是采集基线压测数据、监控数据、日志样本、配置快照。优化之后再用同一套方法重新采集对比前后差异。有了基线优化效果才可量化、可复盘、可回滚。最后说一个个人习惯。我带团队做整体优化时最常讲的一句话是不要从改代码开始从画当前架构图和导出监控数据开始。整体优化不是一次刺激的调优挑战而是把系统调整成可观测、可控制、可演进的状态。如果你正准备优化一个老系统我的建议也是这样——先花一两天把现状摸清楚把目标和边界定下来再动手。磨刀不误砍柴工这套思路你越往后用越会发现它值钱。

相关新闻

LiteLLM 管理员日常运维手册:MASTER_KEY、config.yaml 与 UI 的 TaoToken 统一接入实践

LiteLLM 管理员日常运维手册:MASTER_KEY、config.yaml 与 UI 的 TaoToken 统一接入实践

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

2026/10/18 9:39:32 阅读更多 →
AI驱动宠物App开发:从登录页到生命阶段引擎的范式迁移

AI驱动宠物App开发:从登录页到生命阶段引擎的范式迁移

1. 为什么宠物App不用从“登录页”开始写?——重新定义AI驱动的项目起点很多人一听到“搭建新项目”,脑子里立刻浮现出:创建Git仓库、初始化React/Vue工程、配Webpack、搭ESLint、写第一个Login组件……这套流程像肌肉记忆一样刻在开发者骨子…

2026/10/18 9:39:32 阅读更多 →
数据分析师入门到实战:SQL+Python完整项目链路拆解

数据分析师入门到实战:SQL+Python完整项目链路拆解

如果你最近正在关注“数据分析师”这个方向,大概已经见过很多类似的视频标题:行业发展前景广阔,配套全套资料,带你从入门到精通。刷到这类内容的时候,大多数人第一反应是收藏,然后继续刷下一条。收藏夹里的…

2026/10/18 9:38:32 阅读更多 →

最新新闻

告别木偶Agent:用分层任务拆解构建可靠智能体系统

告别木偶Agent:用分层任务拆解构建可靠智能体系统

做Agent开发这几年,我踩过最大的坑就是亲手造出一个又一个木偶Agent——demo阶段看起来什么都会,工具调用行云流水,一丢到真实场景就崩得稀碎。后来我把这些翻车案例翻来覆去地复盘,发现根源几乎一致:大多数人都在用一…

2026/10/18 10:21:42 阅读更多 →
瑞幸把咖啡做进 CLI:用 TaoToken 统一 Key 打通终端点单工作流

瑞幸把咖啡做进 CLI:用 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/18 10:21:42 阅读更多 →
2026年03月26日全球AI前沿动态:TaoToken统一Key看大模型、智能体与机器人开源进展

2026年03月26日全球AI前沿动态: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/18 10:21:42 阅读更多 →
从MCP协议到Awesome MCP Servers:AI工具链的选型与落地实践指南

从MCP协议到Awesome MCP Servers:AI工具链的选型与落地实践指南

如果你最近在关注AI应用开发,肯定绕不开一个词:MCP。只要打开代码托管平台搜一下“awesome-mcp-servers”,就能看到一个被无数人收藏过的仓库,它把散落在各处的MCP服务器、客户端、SDK和教程整理成了一份索引清单。这篇文章不打算…

2026/10/18 10:21:42 阅读更多 →
【清华代码熊】Coding 测评 GLM 5.1、DeepSeek V4,TaoToken 统一 Key 怎么选?

【清华代码熊】Coding 测评 GLM 5.1、DeepSeek V4,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/18 10:21:42 阅读更多 →
主流大模型API聚合平台2026年横评:词元之河与硅基流动等五家对比

主流大模型API聚合平台2026年横评:词元之河与硅基流动等五家对比

先把概念说清楚:大模型 API 聚合平台,是把多家厂商的推理能力统一为标准接口的云端中间层——一个 API Key 加一个接入地址,就能在模型之间自由切换。它的三大价值很直接:接口统一(多数兼容 OpenAI 格式,代…

2026/10/18 10:20:41 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →