I am trying to get performance statistics on how Android loads, decodes and displays WebP images against JPG, but my results are a bit confused.
Decoding WebP images in Bitmap is slower than JPG.
Some statistics:
- WebP is 66% smaller than JPG, 267% more time to decode.
- WebP is 38% smaller than JPG, 258% longer to decode.
- WebP is 89% smaller in file size than JPG, 319% longer for decoding.
Does anyone know about any performance issue or why WebP decoding is more complicated than JPG.
This is my test:
public class BulkLoadFromDisk implements Runnable { private static final String TAG = "BulkLoadFromDisk"; private static final int TIMES = 10; private final ResourceProvider resourceProvider; private final Activity context; private final int counter; private long averageLoadTimeNano; private long averageConvertTimeNano; private final ImagesFactory.FORMAT format; private final CompleteListener listener; public BulkLoadFromDisk(Activity context, ResourceProvider resourceProvider, CompleteListener listener, ImagesFactory.FORMAT format) { this.resourceProvider = resourceProvider; this.context = context; this.counter = resourceProvider.length(); this.format = format; this.listener = listener; } @Override public void run() { try { Thread.sleep(200); } catch (InterruptedException e) { Log.e(TAG, e.getMessage(), e); } try { String file; long loadBegin, loadEnd; long convertBegin, convertEnd; Bitmap bitmap; Drawable d; String extension = "." + format.name().toLowerCase(); InputStream inputStream; for(int j = 0; j < TIMES; j++) { for(int index = 0; index < counter; index++) { file = resourceProvider.get(index).concat(extension); inputStream = context.getAssets().open(file);
java performance android webp
Roman
source share