最近真的太难了,命犯天煞孤星的感觉.本来谈好的offer临上班前一天把我给鸽了,然后两个面试被虐了. 真的难受,于是在这里记录一下面经,没想到我也会沦落到需要记录面经的时刻,这么内卷的环境下面试真的特别难受,各种被挑刺.
TODO.先记录问题之后再补充回答.
-
xLua/toLua等各种Lua框架的原理是什么. 启动了一个Lua虚拟机
toLua c# 代码静态注册到lua代码中
xLua 在il层注入代码
交互大多通过元表实现,调用wrap映射到Lua中,元表.
-
这些Lua框架与C#调用原理,性能消耗等,元表的操作. 所有的通信都是基于P/Invoke模式(性能低)类似JNI P/Invoke:公共语言运行库(CLR)的interop功能(称为平台调用(P/Invoke)) 命名空间:System.Runtime.InteropServices
复杂类型装箱操作,TODO.
- UGUI的优化策略
材质合批,动静分离降低drawcall,深度保持一直
网格重建原理,减少顶点修改来减少重建,运行时图集处理(根据业务类型来)等.TODO
- 3D模型优化策略
减少点面,静态/动态批处理,LOD,gpu instancing
- Spine的优化策略
减少骨骼数量,运行时动态禁用骨骼(待查)
-
避免GC的一些处理
不要在频繁调用的函数中反复进行堆内存分配
对象池
装箱操作优化
-
CPU的优化方案
缓存
对象池
避免大量实例化对象时造成cpu峰值(使用协程)
粒子系统优化
-
GPU的优化方案
减少绘制的数目
优化显存带宽(压缩图片,使用mipmap)
当前不显示的物体应该隐藏
Lightmap
-
框架的设计
TODO