网站开发行业前景,百度免费,哪个网站能叫我做直播回放,免费的简历制作网站优化一个比较复杂的界面#xff0c;里面有多个rt和组件。
在初次打开这个界面的时候会发生1s多的卡顿#xff0c;还是非常严重的。
分析
通过profiler分析
1.打开界面时卡顿。 分析#xff1a;除了update和dotween相关逻辑#xff0c;主要在于打开时的lua function调用…优化一个比较复杂的界面里面有多个rt和组件。
在初次打开这个界面的时候会发生1s多的卡顿还是非常严重的。
分析
通过profiler分析
1.打开界面时卡顿。 分析除了update和dotween相关逻辑主要在于打开时的lua function调用。
用luaProfiler接着分析 峰值是800ms的卡顿。
在打开时调用了两次相同方法并且这个方法内部创建rt同一个页面塞五个高精度rt耗费了很长时间370ms。
优化
内部用了toggle并且在start的时候初始化一整个页面刷新了一次rt这次的刷新是没必要的可以直接干掉。
打开界面的时候默认执行on toggle的方法但是会有页面优先级SetActive时unity通过默认on toggle调用了一次RefreshData代码侧在之后又修改了一次toggle on这类问题也应该避免。
优化之后加载rt仍然占用0.3s的加载时间实际上这部分内容可以采用异步处理。 虽然yooasset开放了异步接口但是目前项目并没有接入异步相关流程所以没办法优化。
但是依然可以在内部做缓存有些节点信息rt之前的渲染信息都可以及时存储以备后续直接调用。
剩下的卡顿时间是0.3s加载预设的时间所以也需要对其做一些处理比如预设的资源引用削减、特效减负。 最终结果减负了一半加载时间。 但实际上看profiler仍然发现峰值时间偏高原因还是有很多的Instantiate、camera.customRender。这段确实是应当要异步加载才能正式解决这个问题。
其他优化项drawcall/batches
如果用了rt就注定其是有很多batchesrt节点开启前后相差了110.关闭rt后就剩下35了。
减少图文重叠重叠图案或者字体是一定会增加batch数量的。
texture转换成sprite并收录到spriteAtlas中。如果收录进去则unity会尽可能地在一个batch中渲染出来 如果是相同texture也会放入一个batch中直接渲染出来 优化之后降至25不包括renderTexture渲染。