svga/SVGAPlayer-iOS

内存峰值问题咨询

Closed this issue · 4 comments

咨询一个问题
看源码,目前在开始播放前,在draw里循环创建SVGABitmapLayer时,赋值解码了所有image
这会导致两个问题

  1. 主线程循环赋值image, 触发惰性解码,图片多时可能会短时间卡主线程
  2. 播放前一次性解码,导致极高的内存峰值

为什么不再每帧显示时- (void)stepToFrame:(NSInteger)frame 时,在赋值对应的image (也可以添加策略,预解码后面几帧,释放前面几帧,这样能同时解决内存峰值及卡顿问题)

格式设计之初就没打算支持大量 Image,一个正常的动画其位图内存占用不应超过 8M,除非是设计师偷懒,搞成了序列帧。

我们这面直播大礼物都是各种图片拼的 基本都是大几十兆内存占用 有少部分达到了百兆....

是否有实现了相关策略的代码分支😂😂😂

如果一个大礼物内存占用超过 8M,那你就需要找设计优化,而不是从 Player 里找优化,一定是设计出了问题。

fork后 优化了下 也有点效果