GC针对的谁
new对象的时候,产生新对象
产生新对象:装箱,使用linq表达式的委托,new,字符串,使用委托的时候创建了新对象会产生gc,如果缓存了全局这个委托,则不会
GC是发生在什么时候
主动调collect接口以及内存分配不足的时候
如何避免gc
别new对象
GC的过程,为什么耗时
每一次GC会经历以下过程,堆上的对象越多,对象的引用越多,意味着GC所做的工作越多
1:GC会检查堆上所有的对象
2:GC会检查所有这些对象的引用是否仍在作用域
3:每个不在作用域的对象都会被标记为待删除
4:GC删除每个待删除的垃圾对象
渐进式gc,unity2019的分代垃圾收集功能
移动端的优化
GC,UGUI合批,网格重建,跨语言调用,IO,预制体加载大小(特效动态加载),ab包分类
卡牌鱼眼列表的实现
利用Horizontal Layout Group的控制自己缩放特性和item的缩放来修改content大小,监听鼠标事件
全面屏手机为什么可以自适应,自适应是怎么处理的
水滴屏:
修改父节点的anchorMin,跳过水滴
safeAreaRect.offsetMin = Vector2.zero;
safeAreaRect.offsetMax = Vector2.zero;
var resolution = canvas.pixelRect.size;
var offsetX = resolution.x - safeArea.width;
var offsetY = resolution.y - safeArea.height;
safeAreaRect.anchorMin = new Vector2(offsetX / resolution.x, offsetY / resolution.y);
safeAreaRect.anchorMax = new Vector2((resolution.x-offsetX)/ resolution.x, (