iOS渲染卡死应该如何解决

这篇具有很好参考价值的文章主要介绍了iOS渲染卡死应该如何解决。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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


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

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++那边还引用着,也没释放(析构时置空引用),要怎么释放呢?

针对以上问题,有经验的朋友欢迎转至社区交流分享:
UWA问答 | 游戏开发者互动问答社区 | 侑虎科技


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

 文章来源地址https://www.toymoban.com/news/detail-745498.html

到了这里,关于iOS渲染卡死应该如何解决的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 遇到:nodejs unhandledPromiseRejectionWarning 错误应该如何解决

    遇到 \\\"unhandledPromiseRejectionWarning\\\" 错误是因为在 Node.js 中,一个 Promise 被 rejected 了,但是没有被处理(handled)。这可能是因为你没有使用适当的错误处理机制,导致 Promise 的 rejected 状态没有被捕获。 要解决这个问题,你可以考虑以下几个步骤: 使用 ​ ​catch​ ​​ 方法捕

    2024年02月07日
    浏览(54)
  • 门店智能经营平台能解决哪些问题?应该如何选购?

    现在很多实体店都开始借助第三方软件或系统,来为自家门店搭建门店智能经营平台,来智能管理自家门店的商品和库存,提高门店运营效率。 1、实现数据化决策 通过门店智能经营平台,门店能够快速、准确地获取到各项运营指标数据,包括销售额、人员效率、库存状况等

    2023年04月25日
    浏览(42)
  • keil提示No ULINK Device found应该如何解决

    如题,我使用的是STM32F103C8T6芯片,下载器用的是Jlink,下载杜洋的例程死活都下载不进去。错误提示为 No ULINK Device found 如下图 下面说一下解决办法,首先点击 魔术棒 – Debug –选择 J-LINK/J-TRACE Cortex ;然后点击 Settings ,如果能够看到 SWDI后面有一串ID就说明硬件连接没有问题

    2024年02月11日
    浏览(67)
  • 在MySQL执行查询时出现了慢查询情况,应该如何解决?

    MySQL是一种流行的关系型数据库管理系统,但在处理大量数据时,可能会出现慢查询问题。通过使用EXPLAIN命令、慢日志和监视工具等技术,可以诊断出导致MySQL慢查询问题的原因。优化措施包括创建索引、使用联合查询、优化数据库服务器配置、减少查询返回数据的数量和优

    2024年02月11日
    浏览(64)
  • 你知道机器人奇点吗?机器人奇点问题应该如何解决?

    原创/文 BFT机器人   “机器人奇点”——一个让机器人厂商和用户听到都闻风丧胆的词,一旦碰上,轻则重新编程调试,重则要和你的机器人say goodbye了。 提及“奇点“二字,你可能会立刻联想到黑洞。因为在物理学、宇宙学中,“奇点”也被称为时空奇点或引力奇点,它是

    2024年02月13日
    浏览(40)
  • 遇到:opencv recipe for target ‘all‘ failed 错误应该如何解决

    遇到 \\\"opencv recipe for target \\\'all\\\' failed\\\" 错误通常是由于在编译OpenCV时出现了问题,导致编译失败。要解决这个问题,你可以尝试以下方法: 检查依赖项:确保你已经正确安装了OpenCV的所有依赖项。OpenCV在编译时可能需要一些其他的库和工具支持,如CMake、GCC等。请确保你已经按

    2024年02月03日
    浏览(52)
  • 遇到:javax.servlet.ServletException: Circular view path错误应该如何解决

    遇到 \\\"javax.servlet.ServletException: Circular view path [login]: would dispatch back to the current handler URL [/login] again. Check your ViewResolver setup!\\\" 错误是因为视图解析器(ViewResolver)配置不正确,导致循环视图路径(Circular view path)的问题。 要解决这个问题,你可以考虑以下几个步骤: 检查视图

    2024年02月08日
    浏览(37)
  • 遇到:postman Self-signed SSL certificate blocked 错误应该如何解决

    遇到 \\\"postman Self-signed SSL certificate blocked\\\" 错误是因为 Postman 检测到你正在尝试访问一个使用自签名 SSL 证书的网站,并且默认情况下,Postman 会阻止对这样的网站进行请求。 要解决这个问题,你可以按照以下步骤进行操作: 打开 Postman:打开 Postman 应用程序。 设置 SSL 证书验证

    2024年02月03日
    浏览(59)
  • 遇到:java.lang.reflect.InaccessibleObjectException: Unable to make 错误应该如何解决

    遇到 \\\"java.lang.reflect.InaccessibleObjectException: Unable to make...\\\" 错误是由于Java的反射机制无法访问或调用一个非公共的方法、字段或构造函数所引发的异常。这是由于Java的安全管理器或访问控制机制限制了对非公共成员的访问。 要解决这个问题,你可以尝试以下方法: 检查访问修

    2024年02月09日
    浏览(46)
  • 遇到:java.lang.reflect.InaccessibleObjectException: Unable to make错误应该如何解决

    遇到 \\\"java.lang.reflect.InaccessibleObjectException: Unable to make\\\" 错误是因为你的代码尝试访问了一个不可访问的对象或方法。这通常会发生在使用反射机制时,尝试访问私有或受限制的成员时。要解决这个问题,你可以考虑以下几个步骤: 检查访问修饰符:检查你尝试访问的对象或方

    2024年02月07日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包