LuaProfiler:Lua内存优化工具教程
Posted Unity3D游戏开发精华教程干货
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LuaProfiler:Lua内存优化工具教程相关的知识,希望对你有一定的参考价值。
前言
最近做的手游项目(Unity+tolua架构)快接近尾声了,功能差不多齐备之后开始对各种技术指标进行优化。Unity自带的Profiler能对C#的Cpu和内存使用状况进行比较好的分析,但是无法涵盖lua部分,很多人可能跟我一样,对lua部分的优化觉得无从下手。本人在网上搜了很多工具之后发现了这个很实用的工具,能够对内存消耗情况和lua和mono的GC进行很好的监测,废话不多说,一起来看。
下载链接
github.com/ElPsyCongree
https://github.com/ElPsyCongree/LuaProfiler-For-Unity
安装流程
Lua profiler支持XLua,Slua, ToLua以及一个远程工具支持Windows,android, ios真机调试
1.下载完成之后会看到LuaProfilerClient和LuaProfilerServer两个文件夹,你需要两个Unity工程,将Client文件夹拷进你的游戏工程的Assets目录,也就是根目录下(如果你的Lua 脚本在Plugins 文件夹,把LuaProfilerClient拷到Plugins下)
MikuLuaProfiler.HookLuaSetup.OnStartGame();
3.在你的游戏工程,也就是放了LuaProfilerClient的工程下,在Windows菜单拦下会多出一个Lua Profiler Window的选项。打开之后出现这个
如果你在PC上测试,就按照图中的设置即可
4.接下来打开LuaProfilerServer 所在的工程,该工程就是观测内存的地方。也在Window -> Lua Profiler Window下打开Lua Profiler窗口,端口和Client里配置的保持一致便可以点击OpenService
控制台出现如下log说明Server已经开始等待Client的连接
5.这时就可以启动你的游戏工程了,Client显示如下,Server的Lua profiler出现数据说明已经连接成功。
Android手机真机调试(usb连接方式)
用usb线连接电脑和手机
命令行里执行
adb reverse tcp:2333 tcp:2333
原理是把手机的本地端口 映射为pc的 端口
先在pc的server工程里 OpenSerive, 再打开手机APP
功能介绍
参数说明
按照Lua Profiler从左到右的顺序逐一说明
totalLuaMemory:该函数及其子方法总共使用的lua内存(如果函数执行过程中发生了GC,此值会有略微不准)
self:该函数自身总共使用的lua内存,如果出现负值,是其子方法调用GC
totalMonoMemory:该函数及其调用总共使用的Mono内存(如果函数执行过程中发生了GC,此值会有略微不准)
self:该函数自身总共使用的mono内存,如果出现负值,是其子方法调用了GC
currentTime:在当前帧下此调用该函数所用时间
averageTime:该函数的平均调用时间
totalTime:该函数总共的耗时
LuaGC:在当前帧下该函数产生的Lua GC
MonoGC:在当前帧下该函数产生的Mono GC
totalCalls:从游戏开始时该函数的调用计数
Calls:当前帧下该函数调用的次数
录制模式
录制模式能对一段时间里的内存使用情况进行逐帧的监测
结语
优化的重点关注几个地方,
内存上涨的特别快的函数
产生Lua GC的函数
时长消耗比较长的函数,averageTime等指标
延伸阅读
zhihu.com/question/3070 工具作者ElPsyCongree写的关于性能检测文章
gamasutra.com/blogs/Wen C# for Unity内存管理的三篇文章
docs.unity3d.com/Manual Unity官网对内存管理的一些建议
免责声明:部分资源收集整理自网络,版权归原作者所有,仅作学习交流使用,不用于任何商业途径,如不慎该资源侵犯了您的权利,请麻烦通知我及时删除,谢谢。
以上是关于LuaProfiler:Lua内存优化工具教程的主要内容,如果未能解决你的问题,请参考以下文章