【unity】关于技能释放shader.CreateGPUProgram造成卡顿,优化和定位方法。

2023-09-21 14:55:49

关于优化方法,UWA这边有介绍

Unity移动端游戏性能优化简谱之 CPU耗时调优|单帧|动画|调用|unity|实例化_网易订阅

对此,我们可以将Shader通过ShaderVariantCollection收集要用到的变体并进行AssetBundle打包。在将该ShaderVariantCollection资源加载进内存后,通过在游戏前期场景调用ShaderVariantCollection.WarmUp来触发Shader.CreateGPUProgram,并将此SVC进行缓存,从而避免在游戏运行时触发此API的调用、避免局部的CPU高耗时。

然而即便是已经做过以上操作的项目也常会检测到运行时偶尔的该API耗时峰值,说明存在一些“漏网之鱼”。开发者可以结合Profiler的Timeline模式,选中触发调用Shader.CreateGPUProgram的帧来查看具体是哪些Shader触发了该API,可以参考。

 

 

对于漏网之鱼的定位,后来还介绍了一种方法,我实际了一下记录一下:

就是启用 LogShaderCompilation 功能:

  1. 打开 Unity 编辑器,并打开您的项目。
  2. 在菜单栏中选择 "Edit"(编辑)选项。
  3. 在下拉菜单中选择 "Project Settings"(项目设置)。
  4. 在 "Project Settings"(项目设置)窗口中,选择 "Graphics"(图形)选项卡。
  5. 在 "Graphics"(图形)选项卡中,找到 "Shader Loading"部分。将 "LogShaderCompilation"(当着色器编译时记录日志)选项勾选上。


打包在手机上运行后, 用logcat抓到日志

关键字 Compiled shader,  Debug级别的,如果你过滤了可能看不到。 

看一下日志能看到当时哪个shader 的什么Keywords触发了编译:

更多推荐

月木学途开发 4.公告模块

概述效果图数据库设计DROPTABLEIFEXISTS`announcement`;CREATETABLE`announcement`(`announcementId`int(11)NOTNULLAUTO_INCREMENT,`announcementTitle`varchar(255)DEFAULTNULL,`ann

邮件数据安全案例 | 有一种遇见,叫相见恨晚

Mr.赵回忆和联通相遇的时刻,他说,用一句诗来形容恰如其分,“众里寻他千百度,蓦然回首,那人却在,灯火阑珊处”。中国联合网络通信集团有限公司在国内31个省(自治区、直辖市)和境外多个国家和地区设有分支机构,以及130多个境外业务接入点,拥有覆盖全国、通达世界的现代通信网络和全球客户服务体系。“大联接”用户规模超过9亿。

智慧云图书馆: 能支撑智慧图书馆服务体系的图书馆管理与服务平台

一、开源项目简介柏拉图PLATO智慧云图书馆:能支撑智慧图书馆服务体系的图书馆管理与服务平台。二、开源协议未使用主流开源协议三、界面展示四、功能概述平台优势总分馆架构:不再是信息的孤岛,而是共享信息的平台。友好的界面:通过简洁易用的平台界面,提高工作效率。智能的平台:不仅仅是管理平台,更是智能的连接和服务平台。服务大数

Tomcat部署及优化

Tomcat部署及优化一、Tomcat1.Tomcat简介2.Tomcat核心组件2.1什么是servlet2.2什么是JSP3.Tomcat的作用4.Tomcat组件结构4.1Container结构分析5.Tomcat请求过程二、Tomcat服务部署1.安装JDK1.2设置JDK环境变量2.安装启动Tomcat2.1

【转载保存】词性还原和词干的区别

词形还原(lemmatization),是把一个任何形式的语言词汇还原为一般形式(能表达完整语义),而词干提取(stemming)是抽取词的词干或词根形式(不一定能够表达完整语义)。词形还原和词干提取是词形规范化的两类重要方式,都能够达到有效归并词形的目的,二者既有联系也有区别现将共同点和联系总结为以下4方面:(1)目

python教程:使用gevent实现高并发并限制最大并发数

嗨喽~大家好呀,这里是魔王呐❤~!python更多源码/资料/解答/教程等点击此处跳转文末名片免费获取importtimeimportgeventfromgevent.poolimportPoolfromgeventimportmonkey#一,定义最大并发数p=Pool(20)#二,导入gevent猴子补丁,没有它,

玩转Nginx

Nginx是什么Nginx(enginex)是一款的Web服务器、反向代理服务器,能够实现前端Web应用的部署、请求反向代理及负载均衡处理等功能。特点轻量,占用内存少高可靠高并发、高性能可扩展性好支持热部署BSD许可证(开源、可修改再发布)反向代理(ReverseProxy)客户端请求某个网络资源。这个请求会发送到反向

基于Kintex UltraScale系列FPGA KU060/KU115高性能PCIe数据预处理载板(5GByte/s带宽)

PCIE702是一款基于PCIE总线架构的高性能数据预处理FMC载板,板卡具有1个FMC+(HPC)接口,1路PCIex8主机接口、1个RJ45千兆以太网口、2个QSFP+40G光纤接口。板卡采用Xilinx的高性能KintexUltraScale系列FPGA作为实时处理器,实现FMC接口数据的采集、处理、以及背板接口

Stability AI推出Stable Audio;ChatGPT:推荐系统的颠覆者

🦉AI新闻🚀StabilityAI推出StableAudio,用户可以生成个性化音乐片段摘要:StabilityAI公司发布了一款名为StableAudio的工具,用户可以根据自己的文本内容自动生成音乐或音频。免费版可生成最长20秒音乐片段,Pro订阅用户可生成最长90秒的音频内容。该公司希望这款工具能够激发音乐爱

JS Set和Map数据结构

Set和Map数据结构1.Set数据结构1.1Set增删改查1.1.1add()方法1.1.2delete()1.1.3has()1.1.4clear()1.1.5size1.2Set遍历方法1.2.1keys()1.2.2values()1.2.3entries()1.2.3forEach()2.Map数据类型2.1

最大限度节省采购成本的七种方法

当前经济环境下,降低成本比以往任何时候都更受到企业的重视。降低成本通常是指在采购过程中节省的成本,但其实远不止于此。它还包括通过重新谈判合同条款和条件、改进管理和运营流程,以及数据和技术的智能使用而节省的成本。节省采购成本的七种方法虽然采购成本不可能完全消除,但采购专业人员可以采用一些技巧和方法来减少这些支出。1.重新

热文推荐