美文网首页
unity性能优化

unity性能优化

作者: li细细琢磨 | 来源:发表于2020-11-09 19:38 被阅读0次

1、蒙皮网格动画改顶点动画

空间换时间

2、Animator LOD

远处动画降频

3、Animator Instancing

同模角色、花草树木、体育场里的观众

4、慎用MeshCollider

低模或改胶囊体

场景模型合并:Mesh.CombineMesh,

在线合批:程序运行中实时的合并模型,如果场景中模型数量、位置不固定,则必须在线合并

离线合批:程序启动之前利用unity的合批功能,提前把模型合并好

动画模型合批:在Hub里面下载Animation-Instancing直接拖到项目里面去,所有人物动画的模型就有有带脚本的动画模型

CPU:mainthread(主线线程,MonoBehviour), render thread(专门的一个线程来控制我们的GPU)

Bathches:游戏场景的物体,分几个批次,提交给GPU来绘制;

Saved By Batches:多少物体被合批绘制了;

Set Pass Call:每次绘制的时候,我们要将Shader等参数设置到渲染管道;(消耗性能的)

Shadow Casters:阴影开销;

Visible Skinned Meshes:游戏场景中可见的SkinnedMesherer的物体的数目;

Animations:动画的开销;

阴影开销,看不见的;多人场景的时候;

屏幕的低和天空盒占据了两个Bathches

优化动画插件:AnimMapBaker

将动画生成到shader,并合批;

合批有几种技术:GPU instancing

800分两批:是因为显卡没处理一批,三角形的数目是有上限的;

第一批数目N,第二批M N+M=800

N-1            M-1   N-1+M-1=(N+M)-2=800-2=798   

什么是内存

.物理内存

-CPU访问内存是一个慢速过程

-减少Cache miss

   -ECS and DOTS

-台式设备与移动设备内存架构差异

-没有独立显卡

-没有独立显存

-CPU板上面积更小,缓存级数更少,大小更小

-Androld内存管理

-内存基本单位 -Page

-内存杀手 -Low memory killer

-内存指标 -*SS

-内存指标

  -Resident Set Size(RSS)

  -Proportional Set Size(PSS)

  -Unique Set Size(USS)

-Unity内存管理

-Unity是一个 C++引擎:

-底层代码完全由C++写成

-通过Wrapper提供给用户API

-用户代码会转换cpp代码(112cpp)

-VM仍然存在

-Unity内存按照分配方式分为:

    -Native Memory

-Managed Memory

-Editor & Runtime是不同的

-Unity内存按照管理者分为:

-引擎管理内存

-用户管理内存  

 -Scene

 -Audio

   -DSP buffer

   -Force to mono

   -Format

   -Compression Format

 -Code Sizs

 -AssetBundle

   -TypeTree

   -Lz4

   -Lzma

   -Size & count

 -Resoures文件夹

   -R-B Tree

 -Texture

   -upload buffer

   -r/w

   -Mip Maps

 -Mesh

-r/w

-oompression

-Assets

Unity Managed Memory

-VM内存池  

-VM会返还内存给OS

-返还条件是

-GC机制

-Boehm

-Non-generational(非分代式)

-Non-compacting(非压缩式)

-Memory fragmentation(内存碎片化)

-Zombie Memory(僵尸内存)

-无用内存

-没有释放

-通过代码管理和性能工具分析

-GC机制考量

-Throughput(回收能力)

-Pause times(暂停时长)

-Fragmentation(碎片化)

-Mutator overhead(额外消耗)

-Soalability(可扩展性)

-Portability(可移植性)

内存最佳实践-Managed内存

  -Don’t Null it,but Destroy it (用Destory,别用NULL)

  -Class VS Struct

-Pool(池中池)

-Closures and anonymous methods(闭包和匿名函数)

-Coroutines(协程)

-Configurations(配置表)

  -Singleton

相关文章

网友评论

      本文标题:unity性能优化

      本文链接:https://www.haomeiwen.com/subject/ubcrbktx.html