You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Poly Runtime在iPhone ARKit Unity应用中占1GB内存,求优化方法

关于Google Poly Runtime在ARKit Unity项目中内存占用过高的问题

我之前做ARKit+Google Poly的Unity项目时,完全碰到过一模一样的内存问题!当时用的也是iPhone 7,2GB运存的情况下,哪怕没导入任何Poly模型,Poly Runtime启动后直接占了近1GB内存,很快就触发内存警告甚至闪退。

其他开发者的情况

在Unity论坛和Poly开发者社区里,不少人都反馈过这个问题——官方的Poly Unity工具包默认带了很多后台服务、预加载机制和缓存逻辑,哪怕你没实际使用模型资源,这些模块也会在启动时占用大量内存,老设备的运存压力会特别明显。

亲测有效的内存优化方法

  • 禁用不必要的Poly Runtime模块:打开Unity的Poly Settings面板,把Auto-Initialize Poly API关掉,不要让它在项目启动就加载;同时把Poly Cache的默认缓存大小调至最低(比如100MB),甚至直接禁用自动缓存,改成按需加载模型时再启用缓存。另外,如果不需要实时预览Poly模型,可以关闭Poly Preview相关的服务。
  • 手动控制Poly Runtime的生命周期:不要让Poly API一直驻留内存,而是在需要使用Poly功能(比如搜索、加载模型)的时候,手动调用PolyApi.Initialize()初始化;用完之后立刻调用PolyApi.Shutdown()销毁实例,释放占用的内存。这样在AR场景运行的大部分时间里,Poly Runtime都不会占用内存。
  • 优化Unity项目的基础内存设置:在Player Settings中,关闭Graphics Jobs(老iOS设备兼容性差,反而会增加内存开销);开启Static Batching减少Draw Call;把Texture Compression设置为iOS对应的ASTC格式,压缩Poly Runtime自带的默认纹理资源。另外,把Scripting Runtime Version设为.NET 4.x Equivalent,内存管理会更高效。
  • 定期清理Poly缓存:在运行时可以调用PolyCache.ClearCache()手动清理本地缓存的临时文件,尤其是测试阶段,缓存堆积会悄悄占用内存;也可以设置缓存的过期时间,让旧缓存自动被清理。
  • 替换为轻量自定义方案:如果你的需求只是加载Poly模型,可以不用官方工具包,直接调用Poly的REST API下载模型的glTF/OBJ文件,然后在Unity中用自定义脚本动态加载解析。虽然需要自己处理模型导入逻辑,但能完全控制内存开销,避免官方工具包的冗余代码占用内存。

内容的提问来源于stack exchange,提问作者Neil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:35:21