mcdk-tracy-profiling
用 mcdk-mcp-tracy 对运行中的网易我的世界基岩版 MOD 做函数级性能监测:经游戏内嵌原生 Tracy server(TCP 8086)采集每个函数的 CPU 耗时,定位热点,并用前后 diff 毫秒级量化优化收益。做性能 review、排查卡顿、验证优化效果时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
用 mcdk-mcp-tracy 对运行中的网易我的世界基岩版 MOD 做函数级性能监测:经游戏内嵌原生 Tracy server(TCP 8086)采集每个函数的 CPU 耗时,定位热点,并用前后 diff 毫秒级量化优化收益。做性能 review、排查卡顿、验证优化效果时使用。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | mcdk-tracy-profiling |
| description | 用 mcdk-mcp-tracy 对运行中的网易我的世界基岩版 MOD 做函数级性能监测:经游戏内嵌原生 Tracy server(TCP 8086)采集每个函数的 CPU 耗时,定位热点,并用前后 diff 毫秒级量化优化收益。做性能 review、排查卡顿、验证优化效果时使用。 |
mcdk-mcp-tracy 从游戏内嵌的原生 Tracy server(TCP 8086)抓一小段 trace,归约成每个函数的耗时排行(self / total / calls),配合前后 diff 量化优化收益。原始数据在服务端归约,agent 只看 top-N 与 diff。
bin/tracy-capture.exe、bin/tracy-csvexport.exe 存在,版本与游戏内嵌 Tracy 一致(当前 v0.11.1)。tracy_jank_fps 需要游戏由 mcdk.exe 启动且 .mcdev.json 的 mcp_server_config.enabled=true;函数耗时抓取不经 MCDK。tracy_status 确认 native_tracy.reachable=true、bin_present=true 再动手。name_contains 聚焦 MOD:函数显示为 "函数名 @ 源文件",按脚本包前缀(如 MyModScripts)过滤;过滤只影响 inline 返回,全量仍存进 capture。label,tracy_diff_captures 量化收益,不凭感觉。tracy_status() —— 失败看 reason/hint(8086 不可达 → 游戏没起/端口不对;bin_present=false → 缺 CLI)。name_contains)。tracy_native_capture(seconds=<约定时长>, name_contains="MyMod", label="before") —— 返回空看 warning(多半是窗口内没负载)。reload_addon_and_game 热重载 → 同样场景、同样时长再抓 label="after"。tracy_diff_captures(base_id=<before>, new_id=<after>, metric="self") —— 目标函数应在 improved 且 delta_ms 为负;总体看 summary.pct,向用户回报实际省了多少毫秒。tracy_jank_fps(action="sample_fps") 前后对比 FPS 百分位(此工具经 MCDK,MCStudio不可用)。硬性要求:报告是对话正文,不用弹窗——下面 ①②③ 必须作为可读的正文消息完整输出(分析写在内部思考里不算输出);不要调用 AskUserQuestion 之类的选项弹窗工具,选择环节就是正文末尾一句"回复编号即可"。
① 热点排行:top 5~10 表格 —— 函数名|self_ms|calls|每帧均摊(self_ms÷frames)|单次均摊(self_ms÷calls),注明窗口 frames 与总 self_ms。均摊值比总量更能说明严重程度(例:每帧 >1ms 的单个 MOD 函数已值得警惕)。
② 优化计划:先读排行对应的 MOD 源码再给方案,每条标注编号(A、B、C……),包含四项:
| 字段 | 内容 |
|---|---|
| 热点与根因 | 哪个函数、贵在哪:调用次数过多 / 单次太贵 / 这逻辑根本不该每帧跑 |
| 优化手段 | 具体怎么改:缓存、降频、事件化替代轮询、挪出主循环、批处理……优先套用下节参考库里的成熟模式 |
| 预期收益 | 估算省多少 ms/占本次采样的百分比(基于数据推算,标注"估算") |
| 风险与改动量 | 低/中/高 + 原因:改动范围、是否动底层接口或公共模块、是否影响向下兼容 |
③ 按性价比排序:改动小且收益高的排最前;改动大、要动底层、可能影响向下兼容而收益又小的排最后。列完即停,请用户回复编号(如"A+C"/"全做")决定做哪几条。
具体实操模式放在本技能目录 references/ 下,写优化计划前按需读对应文件(不必全读):
| 参考文件 | 内容 | 何时读 |
|---|---|---|
references/general-practice.md | 通用优化模式:组件全局缓存、降频+加盐+质数间隔、事件化(含 ModAttr 同步 Molang)、分帧、单播替代广播、Python 微优化、批量方块原生接口(调色板)、配置内存与加载 | 任何 MOD 的 tick / 组件创建 / 通信类热点,以及批量摆方块尖峰 / 启动慢 / 内存高 |
references/advanced-practice.md | 大型玩法类 MOD 实战模式(Tracy 实测验证):负缓存、脏驱动 O(dirty)、值比对早退、句柄缓存、同 tick 快照短路、有序调度池(定时器二分插入)、lazyTick 分频、frame-drain 分帧、静止短路、超距休眠、dead-reckoning、SYNC_INTERVAL 节流广播 | 多实体联动 / 渲染同步 / 持久化 / 高频定时器类热点,需要可抄的成熟范式时 |
references/ui-practice.md | UI 实战模式(网易 JSON UI):可视区格子池+分页虚拟化、控件句柄缓存、显隐替代增删、值比对刷新、轻重分离+防抖、搜索索引预建、懒加载+分帧注册、渲染 tick 限频 | UI 打开慢 / 翻页搜索卡顿 / 界面常驻掉帧类热点 |
references/shader-practice.md | Shader 优化模式(渲染层):step/mix 消分支、精度限定符(含 iOS/Android 真机差异)、计算下移顶点/CPU、减 inverse/纹理/噪声、全屏后处理与 Bloom 降载、GLSL ES 兼容写法、#ifdef 多档位、热重载+帧率验证 | MOD 函数不贵但 FPS 低、引擎渲染 zone(inGameRender/UIScene 等)占大头时 |
references/render-assets-practice.md | 渲染资源优化(模型/Mesh/特效/粒子):特效 Mesh 减面、移动端模型分级、透明残影+overdraw 控制 | 特效/模型一多就掉帧、近距离看角色掉帧,几何与 overdraw 类 |
seconds(上限 60)。bin/ 的 CLI。unknown_capture 重新抓样即可。