查看: 15|回复: 0

新GOM新增脚本性能检测-PrintUseTime-模式-返回变量

[复制链接]

565

主题

133

回帖

5443

积分

版主

金币
3291
元宝
82

优秀会员亲测达人优秀版主

发表于 昨天 10:38 | 显示全部楼层 |阅读模式

帖子详情

脚本性能检测PrintUseTime 是引擎内置的脚本计时工具,用于精确测量脚本段落的执行耗时,帮助定位卡顿热点、对比不同实现方案的性能差异。支持毫秒(ms)和微秒(μs)两种精度,微秒模式还可将耗时存入脚本变量供后续逻辑使用(例如超阈值报警)。


一、命令格式
PrintUseTime <模式> [返回变量]

二、参数说明


1 毫秒 计时开始,记录当前时间戳 无
2 毫秒 计时结束,将耗时(整数 ms)输出到服务端控制台 无
3 微秒 计时开始,记录高精度时间戳 无
4 微秒 计时结束,将耗时输出到控制台,同时可存入脚本变量 支持 S / P / D / M 类型;
字符串变量(S)可保留小数;
整数变量(D/N/M)自动截断小数

1 毫秒 = 1000 微秒。微秒精度更适合精细优化,毫秒精度适合粗粒度热点排查。
计时结果同时打印到服务端控制台,无论是否指定返回变量。

版本要求模式 1/2(毫秒)各版本均支持;模式 3/4(微秒)需要 2024 年 8 月 10 日 之后的引擎版本。

三、使用示例

示例 1  捡取触发 — 毫秒基础计时

最简单的用法:在脚本入口和出口各插入一行,引擎自动在控制台打印耗时。


• 上线前必须移除或注释:PrintUseTime 会持续向服务端控制台输出信息,正式运营时会造成日志刷屏,干扰运维观察。上线前用 ; 注释掉所有计时行。
• 计时器是全局共享的:若多个脚本并发执行且都调用 PrintUseTime 1/3,计时起点会被覆盖,导致结果偏小或混乱。建议同时只对一个脚本段进行测量。
• 字符串变量保留小数:微秒模式的结果如 12.345,使用 S 型变量(如 S1)可保留小数位;使用 D/N/M 型变量会截断为整数。
• 优先测量高频脚本:PickUpItemEX、OnSpell、短间隔 OnTimer 等高频脚本对总体性能影响最大,应优先排查。登录、NPC 打开等低频脚本即使耗时较长也影响有限。
• 多次测量取均值:单次计时受系统调度、缓存状态影响,波动较大。至少测量 3–5 次再取平均,结果才有参考价值(见示例 13)。
• 基准对比才有意义:优化前后各计时一次,用数据说话;不要凭感觉判断优化是否有效。
• 版本要求:模式 1/2(毫秒)各版本均支持;模式 3/4(微秒 + 返回变量)需 2024-08-10 之后的引擎版本。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则