unity profile使用,内存优化,包大小优化

游戏优化往往是游戏开发中比较重要的一个环节,下面就分享一些自己在性能优化,内存优化,包大小优化方面的经验和总结。

Profiler 是unity自带的,用来分析游戏运行性能,内存使用等非常好的工具,你可以通过它准确定位到影响游戏性能的脚本方法,内存过高的资源等等,对你优化游戏性能,内存有很大的帮助。

一、cpu占用分析

可以看出在白色竖线定位的那一帧,Game.Update()占用了88.3%,如果想知道脚本具体调用堆栈,和具体的问题出在哪,需要把Deep Profiler选上进行深度分析,当你打开深度分析(Deep Profile),所有脚本代码将被分析 - 也就是说,所有的函数调用被记录。知道确切在你的游戏代码中花费的时间,这是有用的。如下图

二、内存占用分析

在Memory栏,可以定位到某一帧,可以看到该帧时内存使用情况,一般就是图片占用内存了,这只是内存概况,要想知道具体是那个图片占用了内存,需要选择Detailed

找到了是哪个图片占用内存了,就好办了,开内存优化。

三、内存优化

从profiler上可以清楚的看到哪个图片占用多少内存,下面就要找到这些图片,根据实际情况对图片进行优化,比如压缩图片,一般来说,如果不是对图片显示要求太高,图片都可以进行一定程度的压缩。选中图片,有一个Max Size,它是限制图片的最大尺寸,这个数值一般可以调整到图片实际尺寸的一般,例如一张1028*720的图片,压缩前内存大小为3.5MB,Max Size可以设置为1024,大小变为2.3MB,基本上都可以接受,甚至Max Size可以设置为512,再甚至可以进行压缩,大小就会变为144KB。所以根据你的项目的实际情况,做一些可以接受的大小调整和压缩,优化效果会非常明显。包大小也会减小很多。

另外还有,去掉Generate Mip Maps选项前面的勾

项目优化是一个细活,还是要多多尝试,调整。

四、包大小优化

build以后,在Console面板最上边点右键->Open Editor Log,打开日志文件,在最下面找到打包记录,它记录了你都把什么东西打包进去了。这样也方便你有针对性的优化资源。

时间: 2024-10-27 12:14:08

unity profile使用,内存优化,包大小优化的相关文章

unity内部:内存 和 性能(以及Unity5的升级优化)

      我们的脚本代码里经常会需要访问gameObject引用或者某个组件的引用,最好的方式当然是在脚本Awake的时候就把这些可能访问的东西都缓存下来:如果需要访问临时gameObject实例的某属性或者临时某组件的gameObject实例,在能够确保组件一定存在(可以使用[RequireComponent( typeof(AudioSource ))] 如果没有自动添加移除不了!)的情况下,可以用属性访问,毕竟属性访问比GetComponent要快上一倍,但是如果不能确定组件是否存在,甚

大牛耗时一年:深入探索 Android 包体积优化,共三万字建议收藏上

由于文章特别长,建议先收藏再阅读. 在 Android 性能优化的知识体系当中,包体积优化一直被排在优先级比较低的位置,从而导致很多开发同学对自身应用的大小并不重视.在项目发展的历程中,一般可划分为如下三个阶段:初创期 => 成长期 => 成熟期通常来说,当应用处于成长期的中后阶段时,才会考虑去做系统的包体积优化,因此,只有在这个阶段及之后,包体积优化带来的收益才是可观的. 那么,包体积优化能够给我们带来哪些 收益 呢?如何全面对应用的包体积进行 系统分析 及 针对性优化呢?在这篇文章中,我们

Unity 技术之对集成显卡进行优化

欢迎来到unity学习.unity培训.unity企业培训教育专区,这里有很多U3D资源.U3D培训视频.U3D教程.U3D常见问题.U3D项目源码,我们致力于打造业内unity3d培训.学习第一品牌. 多边形数量问题 对于现今的大部分图形卡来说,多边形数量并不是大问题.我们一般认为对象数量和填充率更为重要.不幸的是,大部分老的集成芯片(Intel 945 / GMA 950 和类似型号)并非如此.其重要性要看顶点着色器或灯光的复杂度以及 CPU 的速度(不错,大部分集成显卡转换并照亮 CPU

OpenCL入门:(三:GPU内存结构和性能优化)

如果我们需要优化kernel程序,我们必须知道一些GPU的底层知识,本文简单介绍一下GPU内存相关和线程调度知识,并且用一个小示例演示如何简单根据内存结构优化. 一.GPU总线寻址和合并内存访问 假设X指向一个32位整数数组的指针,数组首地址是0x00001232,那么一个线程需要访问第0个成员时是也许是如下访问的: int tmp = X[0] 假设内存总线宽度是256位,内存访问时必须和总线宽度对齐,所以内存只能访问0x00000020,0x00000040这种地址(0x20=256位),如

【转】mongodb可以通过profile来监控数据 (mongodb性能优化)

开启 Profiling  功能 ,对慢查询进行优化: mongodb可以通过profile来监控数据,进行优化. 查看当前是否开启profile功能用命令 db.getProfilingLevel()  返回level等级,值为0|1|2,分别代表意思:0代表关闭,1代表记录慢命令,2代表全部 db.setProfilingLevel(level);  #level等级,值同上 level为1的时候,慢命令默认值为100ms,更改为db.setProfilingLevel(level,slow

android内存优化之图片优化

对图片本身进行操作.尽量不要使用setImageBitmap.setImageResource.BitmapFactory.decodeResource来设置一张大图,因为这些方法在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存.因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView的source,decodeStream最大的秘密在于其直接调用JNI>>nativeDeco

更改Innodb 数据页大小优化MySQL

更改Innodb 数据页大小优化MySQL http://www.mysqlsupport.cn/change_innodb_page_size/ 更改Innodb 数据页大小优化MySQL 2009年12月13日 Posted by wubx 作者:吴炳锡 来源:http://www.mysqlsupport.cn/ 联系方式: wubingxi#gmail.com 转载请注明作/译者和出处,并且不能用于商业用途,违者必究.         我们知道Innodb的数据页是16K,而且是一个硬性

转 cocos2d-x 优化(纹理渲染优化、资源缓存、内存优化)

概述 包括以下5种优化:引擎底层优化.纹理优化.渲染优化.资源缓存.内存优化 引擎优化 2.0版本比1.0版本在算法上有所优化,效率更高.2.0版本使用OpenGl ES 2.0图形库,1.0版本使用OpenGL ES 1.0. 纹理优化 纹理是最消耗内存的,而且会降低渲染速率. 二的幂次方 OpenGL在申请内存存放纹理时,是按2的幂次方申请的,即对应480*320的图片,它申请的是512*512空间.可见,会有相当多的内存被浪费.所以,我们设计的图片,最好是2的幂次方,不然OpenGL最终还

iOS - ipa安装包大小优化

在App Store上显示的下载大小和实际下载下来的大小,我们通过下表做一个对比: iPhone型号 系统 AppStore 显示大小 下载到设备大小 iPhone6 10.2.1 91.5MB 88.9MB iPhone6 10.1.1 91.5MB 88.9MB iPhone6 9.3.5 91.5MB 84.8MB iPhone 5 9.2 91.5MB 84.8MB iPhone6 plus 10.0.2 95.7MB 93.2MB iPhone7 plus 10.3.0 95.7MB