Скорости на зареждане на изображения на Android

Някой знае ли кой формат на изображение води до най-бързите скорости на зареждане? Не съм правил проверки, но ако някой е правил нека коментира.

Знам, че документите за Android казват, че поддържа: .JPG, .GIF, .PNG, .BMP, .WEBP. Да кажем, че трябва да зареждам много изображения много бързо, кой формат трябва да използвам, за да постигна най-добра производителност? Вече използвам изображения с ниска и висока разделителна способност. Зареждането на изображения с ниска разделителна способност е много бързо, но ако превъртите екрана ми много бързо, понякога не може да се справи (има черна секция).

Освен това методът на зареждане има ли значение? В момента използвам BitmapFactory.DecodeFile(path), тъй като е най-лесният. Зареждам изображенията асинхронно, така че няма „хълцане“ в потребителския интерфейс, но понякога виждаме черни секции за няколко милисекунди.

Знам, че това също е свързано със скоростите на I/O, но нека живеем в идеален свят, където тази скорост е незначителна.


person Matthew    schedule 07.02.2012    source източник


Отговори (3)


Предполагам, че тясното място ще бъде I/O скоростта, а не скоростта на процесора. Което означава, че най-компресираният формат ще бъде най-бърз, въпреки че декомпресирането отнема време на процесора. Така че отговорът е JPEG.

person Lawrence D'Oliveiro    schedule 07.02.2012

Моите два цента: Направих няколко теста с голямо изображение (1200x1700), заредено като фонов ресурс (и преоразмерено, за да пасне на ширината на фрагмента) в метод Fragment onCreateView().

Ето 4 измервания на времето (зареждане на изображение + надуване на оформлението) за всеки формат на изображение в ms:

PNG: 212 200 188 220 (saved with Photoshop)
PNG: 200 196 224 192 (compressed with TinyPNG)
JPG: 248 248 260 244

Така че предполагам, че PNG (без значение кой, Photoshop или TinyPNG) се зарежда малко по-бързо от JPG.

person Stéphane    schedule 21.11.2014
comment
Данни. Харесвам отговори с данни вместо предположения, благодаря! - person Jan Bühler; 08.07.2015

Изненадващо IO не е тясното място.

1024x1024x32BPP изображение.

От родната страна имам повече гъвкавост относно това, което зареждам.

PNG : 109 ms Персонализирано TGA зареждане : 39 ms
Персонализирано RAW зареждане : 32 ms

Профайлърът показва, че PNG loader е прекарал цяла ера в декомпресиране, намалявайки IO на файла.

person Steven Haggerty    schedule 26.05.2019