Coil: Setup a benchmark with Glide, Fresco, Picasso

Created on 26 Aug 2019  Â·  8Comments  Â·  Source: coil-kt/coil

Setup a benchmark (memory, time, library size) with Glide, Fresco, Picasso for common set of scenarios

Why?

  • for comparison
  • to identify bottlenecks
  • to keep track of performance changes as library evolves
enhancement

Most helpful comment

:+1: This is on my roadmap after shipping 0.7.0.

All 8 comments

:+1: This is on my roadmap after shipping 0.7.0.

Thanks, reposting my response from the article:

I’ve been focused on bug fixes and high priority features for the past month over performance optimization. Performance is very important to me and I plan to do a full profile of Coil soon. That said, there are likely bottlenecks that haven’t been found yet. However, I think this gives Coil a lot of room to get faster since there hasn’t been a lot of time spent on profiling Coil yet.

Coil being last in the “first load” metric is likely because Coil is paying the cost of initializing Coroutine’s Dispatchers.Main, which can take upwards of 125 ms in debug mode. R8 rewrites the loading mechanism to be much faster.

Glide and Picasso are libraries that have had years to mature whereas Coil has been out for a month. I’m confident performance will only get better in subsequent versions.

Adam Hurwitz re-ran the benchmark in the article with the most up to date Coil version.

Also I'll have a more precise benchmark alongside the Coil 1.0.0 release using the androidx benchmarking library.

Also I'll have a more scientific benchmark alongside the Coil 1.0.0 release using the androidx benchmarking library.

where is it? results please

@kaushalyap I'm planning to upload it alongside 1.0.0 stable (the latest version is 1.0.0-rc3).

I finally wrote up an article benchmarking each of the libraries. Hope it's useful!

Was this page helpful?
0 / 5 - 0 ratings