文档章节

Unity中lua内存占用测试

liyong2
 liyong2
发布于 2016/10/19 23:20
字数 378
阅读 395
收藏 1

源码:

http://git.oschina.net/liyonghelpme/UnityLuaPerfTest

博客:

https://my.oschina.net/u/186074/blog/760949

lua有一个接口 lua_setallocf 可以hook 掉lua的内存分配,可以用来监控lua的内存分配malloc,内存释放free,以及内存大小调整 realloc.

通过这个函数可以统计当前lua已经分配了占用了多少内存

类似于之前的cpu性能测试,我们可以每一帧打印出这个内存占用,就可以观察程序的内存状态了

lua5.1 只支持整个内存统计,但是对于table,number string,闭包等各自占用多少内存并不知道

lua5.2以上版本,可以支持统计每种不同类型数据各自的内存

这里主要对IOS系统做了测试:

接入了Lumberjack 日志库,在IOS的cache目录下,Logs目录中产生内存占用日志

要将改代码嵌入到Unity项目中的Plugins/iOS目录中

1.主要拷贝Classes 目录中的日志库,

2.LuaP.mm LuaP.hpp 性能统计代码

3.src 目录下的lua头文件

在Unity中,需要修改

1.c#中需要在Lua状态机启动的时候,加载我们实现的luaprofiler 库

2.lua代码中,调用我们的luaprofiler库函数,setLogPath, start 启动性能统计工具

3.lua代码中,unity的update调用的lua函数中,调用writelog ,记录性能统计日志

游戏测试完成之后,将日志导出,使用python等进行分析

© 著作权归作者所有

上一篇: tcl语言分析
下一篇: luaCPU性能测试
liyong2

liyong2

粉丝 49
博文 195
码字总数 64266
作品 0
广州
程序员
私信 提问
Unite Beijing 2018 | 技术专场部分精彩议题曝光

离5月11-13日的Unite Beijing 2018的开幕仅剩一个半月了,届时来自全球的Unity技术达人,行业精英和全球合作伙伴将为你带来史无前例的80余场技术演讲,内容涵盖Unity跨平台内容开发经验,标杆...

weixin_41849687
2018/04/20
0
0
Unity3D占用内存太大的解决方法【先转,慢慢看】

Unity3D占用内存太大的解决方法 最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.L...

小姚
2014/09/01
0
0
【转】Unity资源管理原理知识(干货不嫌长)

最近unity 当需要频繁创建一个物体对象时,怎样减少内存. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其实两...

小姚
2015/02/25
0
1
Unity3D资源加载与内存管理

最近网友通过网站搜索Unity3D在手机及其他平台下占用内存太大. 这里写下关于Unity3D对于内存的管理与优化. Unity3D 里有两种动态加载机制:一个是Resources.Load,另外一个通过AssetBundle,其...

lizhenxiqnmlgb
2018/05/24
0
0
LuaScriptCore v2.3.2 发布,移动端 Lua 桥接框架

LuaScriptCore旨在能够在多种平台上方便地使用Lua。其提供了与各种平台的功能交互,让开发者无须关心Lua与各个平台之间是实现交互的细节,只需要根据自己的业务需求,使用LuaScriptCore提供的...

vimfung
2018/12/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Disable Autostart of MySQL Server on Ubuntu

OSC Markdown Editer 真香,笔记一篇,懒得转中文,如有表述问题,请不吝指出,先谢为敬! OS: Ubuntu 19.04 When the MySQL server is installed, it automatically started with the OS. I...

Iridium
10分钟前
0
0
OpenStack RDO + S3

Packstack(RDO) installation "sync db timeout" issue version: openstack-packstack-13.0.0-0.1.0rc1.el7.noarchopenstack-packstack-puppet-13.0.0-0.1.0rc1.el7.noarch add timeout =>......

Firxiao
12分钟前
0
0
java运算符的优先级

https://www.cnblogs.com/zjfjava/p/5996666.html

南桥北木
17分钟前
0
0
线性代数的静态观-向量空间(一)

向量是一个具有大小和方向的量,因此只要大小与方向相同则向量也相同,从而向量可以自由平行移动。 向量与点不同,它反映的是从A到B的位移(既包含位移的方向又包含位移的大小),而点仅仅是...

FAT_mt
18分钟前
0
0
Redis缓存穿透、缓存雪崩和缓存击穿

Redis缓存穿透、缓存雪崩 缓存雪崩,是指在某一个时间段,缓存集中过期失效。 产生雪崩的原因之一,比如在写本文的时候,马上就要到双十二零点,很快就会迎来一波抢购,这波商品时间比较集中...

architect刘源源
40分钟前
10
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部