位置: 编程技术 - 正文

联机Unity Profile性能调试技巧(联机游戏)

编辑:rootadmin

推荐整理分享联机Unity Profile性能调试技巧(联机游戏),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:联机手游推荐双人,联机手游,联机手游,联机游戏手游大全,联机恐怖游戏,联机塔防手游,联机游戏,联机游戏推荐手游,内容如对您有帮助,希望把文章链接给更多的朋友!

Report”3种Profile手段的特点

上面的3种Profile有以下特点:

Unity或者XCode的profile能准确地显示各项功能/函数消耗。但这两种方式本身会引起大量的profile overhead,会引起设备上的“虚卡”,所以它俩的所描述的更多是功能/函数间的相对大小关系。建议优先使用Unity的Profile,因为它的显示信息比XCode的Profile更加实用。XCode的“GPU Report”开销较小,数据能真实地反应设备运行情况,所以能收集绝对的整体消耗大小。3中Profile手段的具体步骤Unity进行Profile准备步骤通过USB连接调试设备和Mac在Build Settings里如下图选择“Development Build”和“Autoconnect Profiler”,然后点击“Build”或者“Build And Run”构建中途,Unity会调用XCode自动进行编译、自动进行运行。设备运行我们的app了之后,在Unity打开Profiler面板,并且如下图选择“iOS profiler over USB”,也就开始进行profile了。Unity进行Profile准备步骤结束。XCode进行Profile通过USB连接调试设备和Mac。

确保调试设备能够进行调试你的app

关于Apple Developer和Provisioning Profiles

一个apple developer有一个apple id这个apple id下有不同的证书(certificates)。证书证明了这个apple id有能力进行软件的开发、分发。这个apple id下有不同的app,每个app对应一个app id(也称bundle id)。表明这个apple id正在开发、分发哪些app。这个apple id下有不同的设备,每个设备对应一个设备id。表明这个apple id关联了哪些设备。这个apple id下有不同的Provisioning Profiles。一个证书id、一个app id和一个设备id列表,组成了一个Provisioning Profiles。意思是,“因为有了这个Provisioning Profiles,我可以用这些设备来调试这个app”。所以,要成功让XCode连上你的设备并调试你的app,你必须拥有正确的Provisioning Profile。更多可以参考Apple Developer官网里的“Member Center”。

在Unity进行Build了之后

在XCode打开相应的工程,如下图点击Product>ProfileXCode编译完了之后,会打开“Instruments”正式开始Profile调试可以通过“Instruments”里面的“Library“来选择不同维度的Profile,比如“Activity Monitor”可以监控设备的各个进程情况、“Core Animation”可以监控帧数、“OpenGL ES Analyzer”可以监控图形API层面的调度情况。XCode进行Profile准备步骤结束。XCode进行“GPU Report”

大体的准备规则和上面的“XCode进行Profile”差不多,主要差别在后面几步:

Unity输出XCode工程后,在XCode打开相应的工程,直接点击“播放键”三角形;当设备自动运行app后,点击下图左部的按钮XCode进行“GPU Report”准备步骤结束。Profile的方法论如何找到性能瓶颈联机Unity Profile性能调试技巧(联机游戏)

项目乃至人生,都是一个选择、试错、总结,再选择、再试错、再总结的循环过程。这个过程并非白费,而是提高自己的经验和能力,减少之后选择错误的几率。

通过Profile找出性能瓶颈的通用步骤如下:

通过功能Profile统计列表,找出占用CPU时间/GPU时间最多的“瓶颈功能”。注意一帧所消耗的时间=Max(CPU时间, GPU时间),而并非它们的和;如果这个“瓶颈功能”是脚本函数等具体的、熟悉的功能,则已经确切找到性能瓶颈,步骤结束。如果这个“瓶颈功能”是不具体的(比如“引擎渲染透明物体”、“引擎渲染cull预处理”就是不具体的),则继续执行以下“广度遍历尝试”步骤:对游戏以不同维度进行拆分,以达到不同功能维度之间可以不相干地切换“ON/OFF”状态。注意,选择哪一种维度进行拆分是关键的;进行多次尝试,每次尝试只有一个维度在“ON”状态、其他维度在“OFF”状态;统计众多尝试中,最影响性能的维度A;将维度A进行子划分,重复第4步,直到找到确切性能瓶颈。如果维度A优化掉后效果依然不达标,则重复到第1步。找到性能瓶颈后该怎么处理

处理方法可以有以下方法:

无损处理:进行优化,让性能瓶颈优化成在任何情况下都不出现。比如算法优化、内存访问优化等。有损处理:可能受限于运行环境,无损处理不可能完成,这需要有损地进行处理,让性能瓶颈在特定情况下才不出现。比如Camera距离LOD、设备功能LOD等。具体Profile案例(Killer Project)--问题

策划要求敌人批量刷出至少个,但在iPhone4上,个敌人已经很卡。

目标

出现瓶颈的设备:iPhone4。目标帧率fps,所以目标帧时间为.ms。考虑到iPhone4是低端机型,允许偶尔降到fps,所以允许帧时间偶尔达到ms。

Profile步骤

使用Unity进行联机Profile,发现渲染透明物体是性能瓶颈。尝试过把场景里的透明物体都去掉,效果不明显

所以依次进行了以下“ON/OFF”的尝试。除了寻找真正瓶颈透明渲染之外,中间还输出了其他的结论点

特性帧数CPU时间GPU时间结论可能美术解决方案可能程序解决方案场景OFF、小兵ms.7msCPU瓶颈:小兵占用过多CPU;小兵刷出时依然占用较大CPU减少小兵骨骼;减少小兵动画帧数;减少小兵trigger节点;场景加载后进入场景前,进行小兵在SpawnPool里的预创建小兵OFF、场景.8ms.5ms无瓶颈:madfinger的天空盒效率甚高;无无小兵OFF、场景去除所有shadow castmsms去除shadow cast/receive可以较好提高CPU效率需要给mesh都去掉shaodw cast/receive无场景、小兵ms;ms最初情况。场景单独OFF没问题、小兵单独OFF问题不大,但他们同时出现却有大问题。见下面比较方案见下面比较方案场景、小兵(无阴影)msms一当加上场景就卡的原因是,小兵需要投影圆形阴影到场景无程序进行设备LOD,当是低端机的时候,需要去掉所有blob shadow projector

结论,敌人脚下的Blob shadow projector阴影是真正的透明渲染瓶颈所在,可以采取设备LOD,在iPhone4上直接去除掉这个功能。可以发现尽管去掉阴影后,效率还是无法达标,所以需要再重投进行一次profile。

Unity ShaderLab学习总结

Unity3d 碰撞与Layers Unity3d的碰撞两个物体一定要加上BoxCollider和Rigidbody。另外,一定要注意Layers的影响。在Unity3d中可以配置Layers之间是否可以发生碰撞。在打开的界面中可

Unity学习笔记(一) Awake()执行一次Start()执行一次Update()一帧一帧执行LateUpdate()FixedUpdate()固定更新设定一个时间,每经过同等时间都会执行一遍OnDestroy()Debug.Log(Strat);OnGUI()//

标签: 联机游戏

本文链接地址:https://www.jiuchutong.com/biancheng/377334.html 转载请保留说明!

上一篇:十分详细的测试unity与android之间的通(详细的测试用例)

下一篇:Unity ShaderLab学习总结(unity shader lerp)

  • 进口设备退税如何账务处理?
  • 发放上年年终奖个税
  • 未确认融资费要还款吗
  • 货物或应税劳务服务名称怎么填
  • 企业对伤残怎么赔偿?
  • 个人话费发票怎么入账
  • 企业可以一次性补交员工十年养老保险吗
  • 银行日记账的登记实例图
  • 资产项目有
  • 煤炭企业会计制度
  • 存货转固定资产的时点
  • 职工在异地住院怎么报销
  • 公司投资控股其他公司如何做账务处理
  • 支付城镇土地使用税会计科目
  • 申请专利的费用如何入账
  • 劳动局仲裁支付的补偿怎么做账?
  • 厂部管理人员工资属于什么会计科目
  • 过了征期还能报税吗
  • 滞留发票产生的原因主要包括哪些?
  • 电子银行承兑汇票有风险吗
  • 税收筹划的定义,有哪些筹划的方法
  • 土地返还款土地增值税处理
  • 存货周转次数计算公式怎么理解
  • 个人独资企业简易注销流程及材料
  • 采用支票结算方式的基本业务处理程序
  • 分项结转法怎么结转
  • 增值税发票已认证抵扣还可以进项税额转出吗
  • 兼职劳务报酬要交个税吗
  • 主营业务收入平均增长率计算公式近两年
  • 应收账款的内容包括
  • 公司罚款怎么写
  • 事业单位财政拨款是编制吗
  • 收到以前年度退税款的会计分录
  • win10商店下载错误怎么回事
  • 电脑开机后桌面图标变乱
  • 资产负债表怎么算资产负债率
  • PHP:imagepsextendfont()的用法_GD库图像处理函数
  • 房地产企业预缴增值税如何申报
  • 员工离职后公司还用照片
  • flex的几个常用布局
  • 浅谈php中类和对象的区别
  • 债权投资 科目
  • 酒店押金的账务处理
  • 金融机构贷款准备金
  • 研发支出是资产类会计科目吗
  • 以前年度的应交税费贷方怎么调平
  • 购货方开工具红包怎么开
  • 房产中介收取的贷款服务费合不合法
  • 企业代收水电费算不算收入
  • 高速公路通行费增值税税率
  • 企业进项税和销项税怎么抵扣
  • 土地增值税中开发间接费用工资包括哪些人
  • 什么情况下借递债券
  • 结构性存款是什么存款
  • 盈余公积转增资本对会计要素的影响
  • 其他债权投资期末公允价值的变动应当计入
  • 劳务外包存在的法律风险
  • 企业安全生产费用可由企业用于购置
  • 应付职工薪酬应该在借方还是贷方
  • sql 获取字段类型
  • win7 光盘
  • 搜索功能使用方法
  • printnow.exe - printnow是什么进程 有什么作用
  • python条件语句的基本结构
  • opengles入门
  • 计算机中丢失opencv_core249.dll
  • Node.js中的全局变量有哪些
  • js动态改变div内容
  • unity如何成一组
  • javascript高级程序设计电子版
  • 深入理解javascript特性.pdf
  • android studio项目无法运行
  • 个税更正申报如何导出大厅申报表
  • 地方税务局稽查局卢永胜
  • 深圳如何打印个人征信
  • 怎么在国税网站取消已申报的财务报表
  • 珠海市香洲区有火车站吗
  • 银川到大武口的汽车站时刻表
  • 国税上海税务局官网
  • 金三是什么鱼竿?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设