这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
《MMO 服务器开发》12.1 状态同步与帧同步的服务端视角
同一个《晨曦大陆》,RTS 选帧同步、MMO 选状态同步,差别不在客户端而在服务端要做什么。本节用一份确定性的 World 分别实现 LockstepServer 与 StateSyncServer,真跑 200 帧证明前者一次 Step 都不用跑、后者每帧都要跑全量模拟,并给出两条路线各自的字节开销与失效条件。
posts
这里是全站文章的归档入口,下面是按时间倒序排列的全部文章。若想按主题浏览,请从首页的专题分类进入。
同一个《晨曦大陆》,RTS 选帧同步、MMO 选状态同步,差别不在客户端而在服务端要做什么。本节用一份确定性的 World 分别实现 LockstepServer 与 StateSyncServer,真跑 200 帧证明前者一次 Step 都不用跑、后者每帧都要跑全量模拟,并给出两条路线各自的字节开销与失效条件。
「只投递一次」在传输层根本做不到,能做的是「处理一次」。本节把 11.1 的窗口和 11.2 的指纹拼起来,加上持久唯一约束与发奖状态机,给出 at-least-once 投递下不重复发奖的完整组合,并专门处理「窗口已过期、请求却真的重发了」这个边界。
上一节的窗口搭好了,但「拿什么当键」还没解决。本节说清传输身份(命令号加会话序号)为什么不可靠,给 aegis 写一套业务指纹:只对定义意图的字段做哈希,把序号、时间戳、连接号排除在外,并算清 64 位指纹的碰撞概率与对抗性边界,附一张字段进出的清单。
客户端重试、网关超时重发、断线重连补发,都会让同一条命令在服务端出现两次。本节给 aegis 从零写一个滑动幂等窗口:时间桶怎么切、内存上界为什么是 rate×ttl、窗口滑出之后重放还安不安全,并用真跑的 L1 测试把这几条边界钉死,附本机实测的内存与耗时。
同样是「一个实体一个邮箱」,Go 的 channel 邮箱和 Erlang/Skynet 那种无界队列 + 单线程消费的 Actor,语义与代价并不相同。本节用 Go 实现两种变体,在本机同条件实测吞吐、验证 selective receive 的差异,并说清 Erlang 与 Skynet 的语义各自换来了什么。
消息驱动把锁消掉了,却把问题推给了邮箱:满了到底怎么办?本节给 aegis 写一个有界邮箱,实现阻塞、丢弃、断开、降级四种拒绝策略,用 4 发送者 × 1000 条真跑证明同发送者到同接收者的 FIFO,并用一条 A→B→C 的链路实测背压如何一路顶回源头。
实体不该被多条 goroutine 同时改。本节把《晨曦大陆》的玩家实体改成消息驱动的 Actor:状态只由自己的循环推进,外界只拿到一个句柄;再用 8 个发送者、1.6 万条消息的 -race 测试证明实体字段一个锁都不需要,并说清句柄、注册表与路由各自的边界。
给 TaskAPI 做规范的健康检查与指标端点:区分 liveness 与 readiness、用 atomic 计数与计时中间件暴露 Prometheus 文本格式的 /metrics、设计 /healthz 与 /readyz 的语义边界,并给出探针配置与安全暴露的取舍。
给 TaskAPI 挂上运行时观测能力:用 net/http/pprof 一行导入拿到 CPU、堆、goroutine profile,用 go tool pprof 定位热点函数,再用 expvar 暴露自增计数器与自定义指标,并用 runtime/pprof 在离线程序里抓 CPU profile。
给 TaskAPI 接入 log/slog 结构化日志:JSON 与 Text 两种 handler、LevelVar 动态调级、With 携带公共字段、LogValuer 脱敏、自定义 handler 从 context 注入 request_id,并用 ReplaceAttr 裁剪时间格式,最后把 main 与 httpapi 的日志出口统一起来。
CostTracker 用每轮 input/output usage 乘示例价格计算 USD;ObservedModel 在同一轮记录一次,不重复把费用记给每个工具。PRICES 是教学值,不是现行报价。真实账单还有缓存读写、思考、服务端工具等项目,应按具体供应商计费分类扩展。归因到工具是模型决策轮次标签,不是工具自身收费。
日志层只负责 JSON 行编码;observe.py 负责统一调用 run,避免把 tools 同时当 schema 列表与可调用函数。JSON 结构化便于检索,不自动提供脱敏、存储限额或审计权限。自定义 fields 仍可能含敏感数据,接入真实业务前需定义允许字段与保存周期。
Tracer 用 ContextVar 关联父子 span,observed_run 包装模型和注册表,继续调用已有保护循环。故障同样关闭 span 并恢复上下文。ContextVar 是当前上下文中的状态,不会无条件自动传播到新线程。并行观测需要显式复制上下文或传父 span,且共享 tracer 的并发写入需独立设计。
本文讲解高光谱遥感数据的处理链路,覆盖波段特性与数据量估算、噪声估计与条带校正、PCA 与 MNF 降维、波段选择、光谱解混与端元提取、SAM 与光谱库匹配分类,以及 ACE 与 CEM 亚像元目标检测,并给出可复用的实现代码与工程落地的质量评估方法。
本文系统讲解检测与分割的评估指标,回答 mAP 到底怎么算、COCO 与 VOC 口径差在哪、mIoU 为什么会被少数类拖垮等实战问题。覆盖 IoU 与匹配规则、PR 曲线与插值方式、AP50 与 AP75 与 mAP@[.5:.95]、分割的 mIoU 与 Dice 与像素准确率、类别不平衡下的指标选择、阈值与 NMS 的影响、以及离线指标与线上效果的差距,并给出两段可运行指标代码。
本文系统讲解遥感影像时间序列分析,覆盖 NDVI 与 EVI 时序构建、Landsat 与 Sentinel 的观测频率、时序合成与云填补、谐波拟合与平滑、物候参数提取、Mann-Kendall 趋势检验与 Theil-Sen 斜率、BFAST 断点检测,以及多传感器融合与工程实现的质量评估要点。
本文深入讲解遥感语义分割的工程实现,覆盖编码器解码器与多尺度结构、多光谱与多模态输入融合、类别不平衡下的损失函数设计、边界与细小地物的精细处理、Transformer 与通用分割器的选型,以及大图滑窗推理拼接、后处理拓扑一致性和 mIoU 误差归因分析,并给出可复用的损失与滑窗推理代码。
本文系统讲解多模态视觉语言模型的工程落地,回答 CLIP 与 VLM 怎么分工、视觉 token 怎么压缩、多模态 RAG 怎么搭等实战问题。覆盖视觉编码器与投影层结构、对比学习对齐、指令微调数据构造、视觉问答、多模态检索增强、幻觉成因与缓解、评估基准、以及显存与吞吐估算,并给出 CLIP 检索与显存估算两段可运行代码。
本文讲解遥感目标检测的工程实现,覆盖旋转框 OBB 与角度回归的周期性问题、密集小目标与极端尺度变化、DOTA 与 DIOR 数据集及评测协议、Faster R-CNN 到 Oriented R-CNN 与旋转 YOLO 的适配改造、旋转 NMS 与滑窗拼接后处理,以及 mAP 计算与漏检归因分析方法。
本文系统讲解 3D 视觉中的点云与深度估计,回答单目与双目深度怎么选、点云怎么体素化、ICP 配准为什么不收敛等实战问题。覆盖单目与双目与结构光与 ToF 原理、点云数据结构与体素化、PointNet 与 3D 检测、ICP 与特征配准、NeRF 与 3D Gaussian Splatting 概览、坐标系约定与自动驾驶多传感器融合,并给出深度转点云与 ICP 两段可运行代码。