wangyunfei

你好 ,最近再使用spine 3.8版本动画 ,也测试最新版本4.0的,出现了堆内存分配很高的问题。比如 一帧加载创建 4个角色,每个角色分配的堆内存就可以达到20Mb以上,然后销毁卸载4个角色后,再次加载出来后,堆内存会持续升高,不能正常回收,需要强制多次调用gc才能正常回收,以防止因为堆内存导致的程序闪退。请问,如何能正常的回收spine的堆内存呢 。
wangyunfei
  • Messaggi: 2

Luke

您好,您能否发布与高堆内存分配相关的崩溃日志?

另外,您能否尝试一下 Nate 在此特定论坛帖子中发布的步骤,看看它们是否有帮助?
Java Heap space when trying to export big texture

有关 Spine 崩溃日志的位置,请参见下文。
esotericsoftware.com/spine-troubleshooting
Luke

Luke
  • Messaggi: 140

wangyunfei

不是spine崩溃的问题,是spine unity版本c#写的 每次创建的SkeletonData数据初始化 都会导致瞬间堆内存升高。因为 unity 一旦堆内存拉高 就不会再自动降下去,直到自动触发下次gc,才能回收堆内存 。所以一个角色 分配 太高堆内存 是否合理正常 。有没有可以优化的地方呢
wangyunfei
  • Messaggi: 2

Harald

我们很抱歉给您带来麻烦。 每个骨架 20MB 非常大。 您是在使用 Spine 编辑器中的 .json 导出,还是使用二进制 .skel.bytes 导出? 一般来说,我们建议将您的骨架文件导出为二进制 .skel.bytes 而不是 .json,这样可以降低内存占用并减少加载时间。

无论格式如何,内存都不应稳定增加。 您能否向我们发送一个仍然显示内存问题不断增加的最小 Unity 项目? 您可以将其作为 zip 包发送至 contact@esotericsoftware.com,并简要提及此论坛 URL,以便我们了解上下文。
-----
We are sorry for the troubles. 20MB per skeleton is very large. Are you using .json export from the Spine Editor, or are you using binary .skel.bytes export? In general we recommend to export your skeleton files as binary .skel.bytes instead of .json, which should lower the memory footprint and reduce loading times.

Regardless of the format, memory should not increase steadily. Could you please send us a minimal Unity project that still shows this increasing memory issue? You can send it as a zip package to contact@esotericsoftware.com, briefly mentioning this forum URL so that we know the context.
Avatar utente
Harald

Harri
  • Messaggi: 4335


Torna a 中国Spine用户