lua的debug库提供了 sethook接口, 可以监控 函数的进入和返回事件,因此可以统计一个函数的运行时间
可以每帧,打印日志,当前帧调用了哪些函数,每个函数的调用次数,总的调用时间长度,通过分析日志,可以得到函数的性能指标
参考UnityProfiler 可以统计函数调用的层次关系,函数自己的时间和子函数的时间区分
同时需要一个性能比较好的日志库,防止频繁写日志
可以使用c++,调用LuaAPI 为Lua写库;
CPu性能分析库主要涉及4个接口:
日志设置
启动
写日志
停止
使用简单的高性能日志库:easylogging++.h
库地址:
http://git.oschina.net/liyonghelpme/LuaProfilerForUnity
集成方法:
将这个工程中代码拷贝到Unity的Plugins目录下面,其中src目录只保留几个头文件即可,外面目录,去掉main.cpp 代码
改造ulua 或者slua 或者 tolua# 在初始化lua虚拟机的时候,调用luaopen_profiler 打开性能测试库
在lua脚本代码里面,初始化库,每帧率写入日志
最后将日志文件中的数据,用python之类的进行分析即可。