采集运行控制
三条控制一次性能采集运行生命周期的指令:开始、中止、清空。
基本信息
| 指令 | 实现类 | 权限等级 | 角色 |
|---|---|---|---|
/opis_start |
CommandStart |
0 | 开始一次采集 |
/opis_stop |
CommandStop |
3 | 提前结束 |
/opis_reset |
CommandReset |
3 | 清空累积数据 |
注册位置统一为 modOpis.java:215-216 与 :223(FMLServerStartingEvent)。
功能
/opis_start
processCommand(CommandStart.java:35-49):
- 若发送者是
EntityPlayerMP,回复DEPRECATED ! Please run /opis instead.并直接返回 —— 玩家不能用它启动采集,采集必须从服务端控制台发起,或改用面板内的 Start 按钮(走Message.COMMAND_START,ServerMessageHandler.java:185-190) - 否则依次:
MetaManager.reset()清空旧数据 →modOpis.profilerRun = true→ProfilerSection.activateAll(Side.SERVER)启用服务端所有 profiler 段 - 用
NetDataValue(Message.STATUS_START, new SerialInt(modOpis.profilerMaxTicks))广播采集长度给所有已打开面板的客户端 - 回复
Opis started with a tick delay %s.,%s取modOpis.profilerDelay
采集点数量由 profiler.maxpts 决定(默认 250),采样间隔由 profiler.delay 决定(默认 1),两者都可在运行中用 /opis_ticks 与 /opis_delay 改,详见 sampling-parameters。
/opis_stop
processCommand(CommandStop.java:31-35):无条件 modOpis.profilerRun = false + ProfilerSection.desactivateAll(Side.SERVER),回复 Opis stopped.。没有「发送者是玩家就拒绝」的分支,所以已授权玩家可以用它提前结束。
/opis_reset
processCommand(CommandReset.java:29-38):调用 MetaManager.reset() 清空所有累积统计,回复 Internal data reseted.;若发送者是 EntityPlayerMP,额外下发 new NetDataCommand(Message.CLIENT_CLEAR_SELECTION) 清掉客户端的选中方块高亮(客户端由 ProxyClient.handleMessage 的 CLIENT_CLEAR_SELECTION 分支把 modOpis.selectedBlock 置空)。
数值
| 数值名 | 值 |
|---|---|
| 广播的采集长度 | modOpis.profilerMaxTicks(配置键 profiler.maxpts,默认 250) |
| 激活的 profiler 段 | ProfilerSection.activateAll(Side.SERVER),仅服务端侧 |
/opis_stop 权限等级 |
3 |
/opis_reset 权限等级 |
3 |
交互
| 指令 | 玩家执行 | 服务端控制台执行 |
|---|---|---|
/opis_start |
回复 DEPRECATED 并返回 | 真正启动采集 |
/opis_stop |
权限 3 或已授权则执行 | 执行 |
/opis_reset |
权限 3 或已授权则执行 | 执行 |
相关条目
- sampling-parameters - 调整采集长度与采样间隔的两条指令
- timing-queries - 采集开始后可用于控制台查看的排名指令
- config -
profiler.maxpts与profiler.delay的配置定义 - profiler-sections -
activateAll实际启用哪些计时段 - swing-ui - 面板内的 Start/Stop 走封包而非本组指令