首页 > 其他分享 >iOS渲染卡死应该如何解决

iOS渲染卡死应该如何解决

时间:2023-11-06 10:34:33浏览次数:31  
标签:社区 渲染 iOS AssetBundle 卡死 问答 UWA

1)iOS渲染卡死应该如何解决
2)C#传给C++的Byte数组如何释放
3)EAssetBundle.Unload(true)触发长时间卡顿的原因


这是第358篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地掌握和学习。

UWA社区主页:community.uwa4d.com
UWA QQ群:465082844

Platform

Q:想问问大家是否有遇到过iOS渲染卡死的问题?表现是整个画面静止,背景音乐还在播放,但不崩溃。

Unity版本是2018.3.35,iOS15和16以上都遇到过。

随机出现,Xcode连真机无任何渲染相关报错,然后还不是稳定复现,所以排查比较难,只能跪求跳过坑的前辈们,感谢!

A1:关掉多线程渲染试试。

感谢HuangLingSheng@UWA问答社区提供了回答

A2:提供个思路,之前有类似的问题,在安卓上发现卡死在了FMOD的线程里面。

感谢郭艺君@UWA问答社区提供了回答

A3:我们项目之前有过类似的情况,是32位包出的,升级64之后就没再出现过,可以试试。

感谢许诺@UWA问答社区提供了回答

A4:你可以试一试关闭Unity的自动渲染,然后移除Metal渲染,只保留OpenGL试一试。

感谢haohaoling@UWA问答社区提供了回答

A5:Unity 2018版本后开了纹理异步上传,如果资源管理不严谨,就会出现该问题,资源非法卸载的时候就会导致卡死。特别是当从AssetBundle异步LoadAsset时(包含纹理),如果卸载AssetBundle,很大概率会出现屏幕冻结。

感谢1 9 7 3-311135@UWA问答社区提供了回答


Script

Q:游戏里用C#读取文件数据byte[],然后传给C++(unsigned char*),有点不明白,这个数组是同一份内存还是复制了一份?

在C++调用free()释放会闪退,猜想应该没有复制,如果是这样,C#这边读出来先不管,C++那边还引用着,也没释放(析构时置空引用),要怎么释放呢?

针对以上问题,有经验的朋友欢迎转至社区交流分享:
https://answer.uwa4d.com/question/652cb15d9d889b61f7e4cfac


Loading

Q:当前项目运行文件在一部分主机平台上,会有AssetBundle.Unload(true)触发的数百毫秒的CPU卡顿。

当前运行时是有频繁加载和卸载相关的操作。但是测试对加载(限制AssetBundle.LoadAssetAsync)和卸载(限制AssetBundle.Unload)频率进行单帧限制,在部分主机平台上仍然无法解决。

AssetBundle本身的加载尚未尝试,但是一般L4Z压缩的单个AssetBundle加载都在1-2帧内完成,个人觉得不应该影响很大。

用Profiler追踪数据,发现造成较长时间卡顿的帧,Unload调用次数很多只有1-2次,并且处于加载中的头部资源也不多。单个头部资源可能引用较多依赖资源包。

不知道有没有处理过类似问题的朋友,可以给一些检查方向上的建议。

A:经查,是AssetBundleLoadRequest太多把PersistentManager锁住了。给加载和卸载分配单独的帧就好了。

感谢题主欧月松@UWA问答社区提供了回答

封面图来源于网络


今天的分享就到这里。生有涯而知无涯,在漫漫的开发周期中,我们遇到的问题只是冰山一角,UWA社区愿伴你同行,一起探索分享。欢迎更多的开发者加入UWA社区。

UWA官网:www.uwa4d.com
UWA社区:community.uwa4d.com
UWA学堂:edu.uwa4d.com
官方技术QQ群:465082844

标签:社区,渲染,iOS,AssetBundle,卡死,问答,UWA
From: https://www.cnblogs.com/uwatech/p/17811997.html

相关文章

  • 1820_ChibiOS中的同步消息
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.看到这里提到的这个模型,我在想是不是我一直没有搞定的多核可以利用这个机制来解决。如果是多核,ChibiOS的这种机制是否依然奏效?这是一个后续需要去弄清楚的问题。2.之前看消息传......
  • 1816_ChibiOS中的RT调度器
    GreyZhang/g_ChibiOS:IfoundanewRTOScalledChibiOSanditseemsinteresting!(github.com)1.ChibiOS的调度是一个严格根据优先级来的调度器。2.有一个与此功能相关的参数配置,用来设置时间片。如果这个数值设置为0,那么调度将会认为所有的线程优先级一样,线程之间的协同调......
  • 苹果iOS 17.2年底推送:iPhone 15 Pro的自定义操作按钮功能升级
    据报道,苹果会在年底推送iOS17.2版本,新版系统将会修复iPhone15系列WiFi速度慢的问题。与此同时,iOS17.2将会带来翻译功能,iPhone15Pro的自定义操作按钮切换到翻译选项后,按住会弹出一个翻译窗口,用于翻译设备听到的语音内容。除此之外,这枚自定义操作按钮还可以设置为其它很多功......
  • 麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包
    原文链接:麒麟KYLINIOS软件仓库搭建03-软件仓库添加新版本的软件包hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章03-软件仓库添加新版本的软件包,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上,为搭建好内网软件仓库源中添加新版本的软件包,本系列......
  • 自定义简单的axios方法
    functionmyAxios(config){returnnewPromise((resolve,reject)=>{constxhr=newXMLHttpRequest()//如果存在想要放在链接后的参数?name=1&password=2if(config.params){constparamsObj=newURLSearchParams(conf......
  • 麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包
    原文链接:麒麟KYLINIOS软件仓库搭建02-软件仓库添加新的软件包hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章02-软件仓库添加新的软件包,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上,为搭建好内网软件仓库源中添加新的类型软件包,本系列共有三个......
  • 专访虚拟人科技:如何利用 3DCAT 实时云渲染打造元宇宙空间
    自古以来,人们对理想世界的探索从未停止,而最近元宇宙的热潮加速了这一步伐,带来了许多新的应用。作为元宇宙的关键入口,虚拟现实(VR)将成为连接虚拟和现实的桥梁。苹果发布的VISIONPRO头戴设备将人们对VR的关注推向了一个新的高度。在这个充满无限可能性的元宇宙中,杭州虚拟人科技有......
  • 从FrameDebugger看Unity渲染
     Unity如何渲染一个3D+2D的游戏画面,今天通过FrameDebugger来看下Unity内置渲染管线的渲染策略, 后续再出一些URP渲染管线相关的文章。    Unity渲染场景的几个主要部分    Unity内置渲染管线是基于摄像机来进行渲染的,每个摄像机按照摄像机的渲染顺序来依次渲染,渲......
  • 【iOS逆向与安全】某车之家sign签名分析
    1.目标分析某车之家sign签名算法的实现2.操作环境fridamac系统Charles抓包越狱iPhone3.流程寻找切入点通过Charles抓包获取到关键词为_sign,这也就是我们的切入点:静态分析在静态分析前,我们先观察sign值的特征,比如32位就有可能是md5,数字加字母加+/然后以=号结......
  • 麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器
    原文链接:麒麟KYLINIOS软件仓库搭建01-新创建软件仓库服务器hello,大家好啊,今天给大家带来麒麟桌面操作系统软件仓库搭建的文章01-新创建软件仓库服务器,本篇文章主要给大家介绍了如何在麒麟桌面操作系统2203-x86版本上搭建内网软件仓库源,本系列共有三个内容,欢迎大家浏览分享转发。关......