unity性能优化笔记

10%3   = 1   求余 位运算    10 &(3-1)   = 1

string hello = "helloworld"     int  num = 4          "helloworld"   4 存放在代码段

C#: 代码段 : (只读,存放二进制指令,运行的时候加载进去)

           数据段 : 全局变量, 静态全局变量

           堆 : new出来的对象( 应用类型)

           栈: 局部变量,函数参数,保存函数调用结束后,返回到那一个位置;

 

算法复杂度: 空间复杂度,时间复杂度

            数据结构,  数组,list ,字典,  链表,树,hash表

             时钟周期 : CPU频率,       主频(1G)  1024*1024*1024*1024

            每次周期可以完成一些计算指令 ,加、减、乘、除、mov、移位   有些指令 需要几个周期才能完成

            每个cpu 的说明书有 : 它支持多少指令,每个指令要用多少时钟周期;

int sum  = 0;

for(int i = 0 ; i < 10000 ;i++){

sum+=i;

}

1+ 1 + 10000(1 + 1 + 1 )   =》  时钟周期 

空间换时间:

           降低内存消耗  -> 换得空间

            降低时间消耗   - >节省 cpu 的计算

             如 : 1、场景静态光照烘培

                       2、动画组件优化,  因为实时计算顶点位置 ,计算量较大

                                              手段-> 编辑器模式下,采样数据到一个纹理里面 , 使用的时候,读取顶点位置

                        3、对象池 ( 严格来说 属于 缓存分配器, 本身并没有 额外消耗空间 )

时间换空间:

                    1、动画组件  ,

                     2、资源释放   

 

包体优化 : 

                 (1) 去掉不必要的资源,尽量重用资源,UI用九宫格代替 ,3D类型->最小的面数,做出最好的模型

                  (2)压缩资源 : png文件,声音,

                  (3)打空包 ;包不带资源,资源放在服务器,第一次启动从服务器下载

                   (4)文件超大,单独摘出来    - >  unity包体分析工具 

 

场景优化 :

                     阴影 :完全关闭  、 静态光照 、光照贴图

                     drawcall  : 静态合批 ,动态 合批,GPU instancing

                                         静态合批: 在内存上开销 ,但是可以一起绘制,减少模型的位置变换

                      遮挡剔除,LOD, 四叉树:尽可能的让场景少绘制物体、高低模切换

                     

Shader优化:

                     减少 shader 数目, 大量shader 会导致 setpass call 增高

                       shader cache

                       纹理采样次数 texture2D(tex,i.uv)  : -> unity中的filter Mode 滤波(采样算法)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值