-
Notifications
You must be signed in to change notification settings - Fork 78
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
gif加载性能 #125
Comments
glide gif解析是在java层,本库gif解析转到native侧,native会比java侧在数据处理上有性能优势 |
我再补充一些: GlideApp.with(imageView)
.load(url)
.set(AnimationDecoderOption.DISABLE_ANIMATION_GIF_DECODER, true)
.into(imageView); |
虽然解析gif放到了native层,但是我在实际测试中发现性能比glide自带的还要差,会不会与gifframe处理过程中把数据通过canvas绘制到bitmap,再又将bitmap的数据倒腾到framebuffer中,真正绘制的时候,会再次将数据生成到bitmap有关。 |
实际测试是怎么测试的呢 |
用的android studio的 profile工具 |
使用本库加载同一个图CPU会降低 |
能否提供更明确的截图信息和测试方法,这个结论跟我之前测试的结果不符 |
对于数据的传输,是一个拷贝过程,相对于图片解码整个流程来说影响较小 |
先对比下一张图?控制变量 |
一张图cpu和内存差别不太大。用小图区别更加不明显。 |
稍等,我来复现一下你的测试结果. |
ok稍后我看下 |
好的 辛苦 |
在图片较大时,因为数据较大导致native层需要分批调用Reader接口从Java层拿数据,导致JNI调用次数急剧攀升,用于测试的图片每一帧都有数千次JNI的调用,JNI开销导致整体方法性能迅速劣化. |
好的 谢谢。 |
你们只是把解析放在了native层,但是当gif解析成一张张的bitmap后,这些bitmap的解析并没有放在native层。 |
不明白你说的bitmap的解析是什么东西, bitmap就是像素点的集合,不需要什么解析,这也不是性能的瓶颈点 |
gif是被解析成一张张的bitmap绘制在屏幕上的,解析这些bitmap的时候你们是放在哪解析的,还是说你们用的giflib? |
Glide默认支持gif开销最大的不是在解析的过程,而是在生成一张张bitmap,而且在ImageView在显示一张bitmap的同时已经生成了下一张bitmap放在内存里,所以glide默认的gif加载内存才会居高不下 |
你好,我有一个疑问,glide默认有gif加载功能,该库提供的gif加载方式相比glide默认的gif加载有性能上的优势吗?
The text was updated successfully, but these errors were encountered: