首页 > Unity3D频道 > 【CSLight研究院】 > CSLight研究院之与uLua的效率对比(三)
2014
08-18

CSLight研究院之与uLua的效率对比(三)

测试环境

1.红米手机一枚。

2.4张1024的Atals图集。

3.脚本中实例化400个UISprite。

4.随机设置UISprite的深度,这样可以让UI的drawCall 数量非常恐怖。

以上参数已经非常恐怖了。如下图所示在电脑上 230个DrawCall 23帧。 测试环境每一张UISprite没1秒随即移动到另外一个位置。所有控制代码均在脚本中完成,我们来分别测试一下 预编译DLL、CSLight、uLua的效率怎么样。

CSLight研究院之与uLua的效率对比(三) - 雨松MOMO程序研究院 - 1

 

 

装红米手机上运行一下看看。预编译DLL 加载400个UISprite耗时 0.16s,运行时帧数 16.83FPS

CSLight研究院之与uLua的效率对比(三) - 雨松MOMO程序研究院 - 2

 

使用CSLight来 加载400个UISprite耗时 0.78s,运行时帧数 13.81FPS

CSLight研究院之与uLua的效率对比(三) - 雨松MOMO程序研究院 - 3

 

使用uLua来 加载400个UISprite耗时 0.53s,运行时帧数 11.87FPS

CSLight研究院之与uLua的效率对比(三) - 雨松MOMO程序研究院 - 4

 

测试结果:

在脚本中调用Unity自身的方法,比如Resource.Load、 Instantiate 、uLua效率要高一些。

但是如果处理脚本与C#之间的来回调用,那么CSLight效率更高一些。

测试到这里,我觉得无论你用uLua还是CSLight都可以进行Unity的热更新,因为它俩效率差不多呵呵。就看你的个人喜好了!

测试代码比较丑,不过能说明问题,因为 C# 的代码和 CSLight的代码完全一样,所以这里我只贴C#和ulua的代码。

C#

 

uLua

UICommon.cs 测试入口脚本,为了公平我分别把这个脚本挂在了三个场景中。每次切场景Unity会自动施放内存,我会根据场景名来动态初始化脚本。

UIEventCommon.cs 用来测试脚本与C#之间的回调,这里每一秒会回调一次。

 

最后是下载地址,欢迎大家在下面给我留言,也欢迎大家一起讨论Unity的热更新。谢谢。

http://pan.baidu.com/s/1o6NWyX8

工程下载完以后,大家可以直接打包装在Android手机上或者IOS上 。iOS我没上真机看,没找到iPhone4,如果你有机器的话帮我测试一下嘿嘿。

我在iPhone5s上看了一下 全程无压力,有iPhone4的朋友帮我看看哦。。

雨松MOMO提醒您:亲,如果您觉得本文不错,快快将这篇文章分享出去吧 。另外请点击网站顶部彩色广告或者捐赠支持本站发展,谢谢!

--

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠如果您愿意花10块钱请我喝一杯咖啡的话,请用手机扫描二维码即可通过支付宝直接向我捐款哦。