采集运行控制

三条控制一次性能采集运行生命周期的指令:开始、中止、清空。

基本信息

指令 实现类 权限等级 角色
/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 走封包而非本组指令