-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
内存泄露 #48
Comments
播放的图片序列帧,一般是7s 24fps 每张图大约100K左右,100-200张 |
泄露的内存为native内存 |
由于序列帧图片大小非降序,没有开启图片复用 |
|
具体的场景是一组动态图播完一定时间后,清理,替换新一批动态图,每张动态图位置、大小都不同。 当前采用先移除后新增多个FrameAnimationView,完成2批动态图的切换。 加载代码如下:tvContent为FrameAnimationView tvContent.setRepeatMode(FrameAnimation.RepeatMode.INFINITE); |
通过android 手机的测试,再手机中连续进行上述操作,1次在2小时后,1次再4小时,也都出现了app卡死的情况,通过bugly手机错误信息如下,并检测到此时存在大量线程,包括16个 图片解码DecodeThread 线程: IntentServiceHeapAnalyzerServicejava.lang.IllegalStateException Cannot perform this operation because there is no current transaction. 1 |
我这边对log日志中的大量GC操作有些疑惑,不知道是否可能是产生上述异常的原因之一 Waiting for a blocking GC Explicit WaitForGcToComplete blocked NativeAlloc on HeapTrim for 22.765ms |
关闭图片复用会导致内存抖动,频繁GC。 |
crash堆栈看起来跟这个库没有关系。 |
以下两种基本确认为现在的主要报错信息,不过没有再看到内存出现明显增长了。 RenderThread(2948)SIGABRT 1 HeapTaskDaemon(246)SIGABRT 解析原始 |
|
您好,您的开源框架是少数几个能在机顶盒上做复杂序列帧动画不卡的。
现在我遇到一个比较严重的内存泄露问题,我再一个页面中,不断的清除、新增 多个 FrameAnimation控件播放多个序列帧,平均1小时左右,内存占用会在1分钟内突然持续大量增长,直到最终由decodeBitmap()触发OOM。OOM页面闪退后,泄露内存依然无法释放
。
#125006 java.lang.OutOfMemoryError
pthread_create (1040KB stack) failed: Try again
com.yuyashuai.frameanimation.io.BitmapPoolImpl.void decodeBitmap()(BitmapPoolImpl.java:154)
The text was updated successfully, but these errors were encountered: