近期发布的GOT Online中,我们对Overview、Lua等多个模式的使用体验进行了优化,不仅交互界面更加人性化,功能也更加强大。为了便于大家充分使用该服务,今天我们对这些新特性做下介绍:
1、支持GC调用频率检测
GC调用频率引起卡顿的重要表现之一,为此我们在Overview的加载模块中增加了GC的统计。
GC调用频率主要受堆内存影响,当函数的堆内存分配量越多、越频繁,GC就会越快到来。所以当我们的GC.Collect函数的调用频率较为频繁(如上图所示),特别是随着游戏运行时间增加,越来越频繁时,就需要我们留意是否存在高分配、频繁分配堆内存的函数操作了,这部分就可以借助GOT Online的Mono模式排查是否有Mono分配过快或过高的现象。
2、CPU调用堆栈页优化
CPU耗时图中我们首先可以看到总耗时走势,以及各个top函数的走势,便于快速做分析和判断,譬如某些峰值是因为哪些函数撑上去的,一目了然。
同时,我们也加入了分场景查看功能,大家可跳转特定场景,查看该场景下的各个函数耗时分布。
优化Lua性能怎能没有GOT Online!Lua模式中最受大家喜欢的功能之一是倒序分析,因为够简单够粗暴:在倒序模式下,某结点展开后的直接函数列表为对该结点函数有所调用、并产生堆内存的父函数,因此可以直接定位到最底层的原因,再也不用为深不见底的堆栈而无脑“点点点”了...
新版本中,我们在指定帧堆栈信息中加入了自身占比,便于大家一眼挑出耗时最大的始作俑者。
另一个大家偏爱的功能是Lua泄露分析(Mono引用导致的Lua泄露)。新版本中,我们优化了Mono对象的展现方式,大家可以直观地在一个页面中查看Mono对象的具体详情,包括Destroy数量和走势等,并通过对比模式将采样点做比较,分析增量的合理性。
作为项目的“癌症”之一,堆内存由于其泄露方式多种多样,让大多数研发团队无法入手,而GOT Online的Mono就是针对这个顽疾的科学良药。
在最新版本的Mono模式中,我们优化了堆内存泄漏分析的展示形式:为什么我的Mono占用那么高?它们都去哪儿了?在最新版本中,一张图就能告诉你。
同样,Mono泄露也是常常令人秃头的问题。首先,函数界面中会显示该函数在游戏运行过程中的真实堆内存占用情况。同时,点击下方柱状图中任何一个条形柱,都能看到其详细的堆内存实际使用情况和驻留的变量详情。
在Mono对象引用中,大家可以通过选择柱状图中的任意两次内存采样,对内存变化进行比较,从而可以捕捉到具体的泄露函数,以及泄露的具体内存和变量。一旦定位有所突破,问题的修复便迎刃而解。
有了这些功能,是不是觉得Buff加身?点击解锁GOT Online更多酷炫玩法!