[Unity优化]一个简单的对象池及其测试(二)
2015-03-07 11:46
549 查看
测试代码如下:
本人对无对象池、有对象池的分别测试50次,测试为显示五千个cube。工程在运行时,无任何操作的情况下FPS大概为80~90,在FPS处于80~90的情况下进行实例化或者从对象池中取出对象。
通过对按下瞬间,FPS的变化,得出的结果如下:使用对象池时FPS主要在30~50,有时低于30,会出现低于10的情况;不使用对象池时FPS主要在10~35,会出现低于10的情况。
从最高值上看,使用对象池时FPS高于40的概括大概在百分之20~30,而不使用对象池时FPS在这50次的测试中没有高于40的。总的来说,使用对象池还是有一定的优化作用的。
但让本人不解的是,即使使用对象池,也会出现FPS低于10的情况,这是什么原因呢?
using UnityEngine; using System.Collections; using System.Collections.Generic; public class TestObjectPool : MonoBehaviour { public GameObject prefab; public int prefabAmount = 5000; List<GameObject> tempObj = new List<GameObject>(); // Update is called once per frame void Update () { if (Input.GetKeyDown(KeyCode.Q)) { for (int i = 0; i < prefabAmount; i++) { GameObject obj = Instantiate(prefab) as GameObject; tempObj.Add(obj); } } if (Input.GetKeyDown(KeyCode.W)) { for (int i = 0; i < prefabAmount; i++) { Destroy(tempObj[i]); } tempObj.Clear(); } if (Input.GetKeyDown(KeyCode.A)) { for (int i = 0; i < prefabAmount; i++) if (GetComponent<ObjectPool>()) { GameObject obj = ObjectPool.instance.GetPoolObject(prefab.name, true); tempObj.Add(obj); } } if (Input.GetKeyDown(KeyCode.S)) { for (int i = 0; i < prefabAmount; i++) if (GetComponent<ObjectPool>()) { ObjectPool.instance.SetPoolObject(tempObj[i]); } tempObj.Clear(); } } }
本人对无对象池、有对象池的分别测试50次,测试为显示五千个cube。工程在运行时,无任何操作的情况下FPS大概为80~90,在FPS处于80~90的情况下进行实例化或者从对象池中取出对象。
通过对按下瞬间,FPS的变化,得出的结果如下:使用对象池时FPS主要在30~50,有时低于30,会出现低于10的情况;不使用对象池时FPS主要在10~35,会出现低于10的情况。
从最高值上看,使用对象池时FPS高于40的概括大概在百分之20~30,而不使用对象池时FPS在这50次的测试中没有高于40的。总的来说,使用对象池还是有一定的优化作用的。
但让本人不解的是,即使使用对象池,也会出现FPS低于10的情况,这是什么原因呢?
相关文章推荐
- [Unity优化]一个简单的对象池及其测试(一)
- 一个简单字符型设备驱动及其测试
- 一个简单的小测试程序实现(已做优化)
- 【Unity优化】构建一个拒绝GC的Lis
- unity游戏性能优化之简单内存优化
- 简单编程(十四)定义一个方法能够判断并返回两个整数的最大值,并调用自己的方法测试是否正确。
- C# 一个简单分词程序的思路和代码(六) 源代码 ,测试程序,词库下载地址
- 【Unity优化】构建一个拒绝GC的Lis
- 一个Java实现的简单的多个客户端聊天程序(未测试)
- 测试优化求解算法的一些简单绘图函数
- zeromq 测试用例,一个简单的接受浏览器信息的例子
- 冒泡排序算法及其简单优化(基于Java)
- 一个简单的日历代码 (For: FF1+ IE5+ Opr7+)测试
- 多目标优化-测试问题及其Pareto前沿
- 一个简单的rpc框架实现(待连载优化)
- 你适合做架构师吗?简单的一个小测试.
- Mahout 安装配置及一个简单测试
- 关于字符串的一个简单的习题--输入一个数字,判断是几位数,打印每个数字及其重复的次数,依次打印个位到最高位
- 也发一个TWI多机通讯的简单例子.并经过抗干扰测试 IIC I2C
- 简单搭建一个ES6语法测试环境