Picasso v / s Imageloader v / s Fresco vs Glide [chiuso]


344

I risultati:

  1. Differenza tra Picasso v / s ImageLoader qui ...
  2. Informazioni sulla biblioteca GLIDE qui ...
  3. Ora di recente Facebook ha rilasciato una nuova libreria di immagini chiamata Fresco

Domande:

  1. Qual è la differenza tra Picasso v / s Imageloader v / s Fresco
  2. Quando possiamo usare Glide
  3. Qual è la migliore libreria da usare.
  4. Se ogni biblioteca ha il suo significato, quali sono?

mi interessa anche l'affresco. qualcuno può spiegare la differenza?
Krit


8
Questo non è il posto giusto per porre domande basate sull'opinione
danny117,

16
@ danny117 quindi cosa possiamo fare qui se non ne abbiamo idea?
Anand Savjani,

2
@ShobhitPuri questo strumento ti aiuterà a controllare il conteggio dei metodi
Nicholas Ng

Risposte:


189

Sono uno degli ingegneri del progetto Fresco. Quindi ovviamente sono di parte.

Ma non devi credermi sulla parola. Abbiamo rilasciato un'app di esempio che ti consente di confrontare le prestazioni di cinque librerie - Fresco, Picasso, UIL, Glide e Volley Image Loader - fianco a fianco. Puoi ottenerlo nel nostro repository GitHub .

Vorrei anche sottolineare che Fresco è disponibile su Maven Central, come com.facebook.fresco:fresco.

Fresco offre funzionalità che Picasso, UIL e Glide non hanno ancora:

  1. Le immagini non sono memorizzate nell'heap Java, ma nell'heap di ashmem. I buffer di byte intermedi sono anche memorizzati nell'heap nativo. Questo lascia molta più memoria disponibile per le applicazioni da utilizzare. Riduce il rischio di OutOfMemoryErrors. Riduce anche la quantità di applicazioni di garbage collection che devono migliorare le prestazioni.
  2. Le immagini JPEG progressive possono essere trasmesse in streaming, proprio come in un browser Web.
  3. Le immagini possono essere ritagliate in qualsiasi punto, non solo al centro.
  4. Le immagini JPEG possono essere ridimensionate in modo nativo. Questo evita il problema di OOMing durante il tentativo di ridimensionare un'immagine.

Ce ne sono molti altri ( vedi la nostra documentazione ), ma questi sono i più importanti.


1
Grazie, puoi allegare il risultato di "Abbiamo rilasciato un'app di esempio che ti consente di confrontare le prestazioni di cinque librerie" in formato tabellare con la tua risposta?
mmlooloo,

1
L'affresco ha alcune funzionalità in più rispetto alle altre, ma è anche molto più grande ..
ligi

4
hanno aggiunto una 's' sul retro del link. github.com/facebook/fresco/tree/master/samples
JR Tan

@tyronen sono interessato a Fresco. Permette di caricare immagini locali invece dalla rete? Grazie
GmloMalo,

1
@wedi sì lo è.
tyronen,

131

Intendiamoci che questa è una domanda fortemente basata sull'opinione, quindi ho smesso di creare fiordi e ho fatto una tabella veloce

inserisci qui la descrizione dell'immagine

Ora il confronto delle librerie è difficile perché su molti parametri, tutti e quattro fanno praticamente la stessa cosa, tranne forse per Fresco perché contiene un sacco di nuove ottimizzazioni a livello di memoria. Fammi sapere se ti piacerebbe determinati parametri vedere un confronto basato sulla mia esperienza.

Avendo usato almeno Fresco, la risposta potrebbe evolversi mentre continuo a usarla e comprenderla per gli exploit attuali. Il used personallyè aver usato l'atleast biblioteca, una volta in un'applicazione completata.

* Nota: Fresco ora supporta le animazioni GIF e WebP


1
Sono curioso di conoscere le valutazioni "Personalizzabilità", "Utilizzo immagine di rete" e "Facilità d'uso" inferiori per Fresco. Qual è la base di queste valutazioni?
Tyronen,

1
Principalmente al primo utilizzo, utilizzerò Fresco un po 'di più per capire, questa risposta potrebbe evolvere :)
Vrashabh Irde

1
@Slartibartfast Hai avuto la possibilità di provare Fresco e l'ultima versione di Glide 3.0? Li valuteresti ancora allo stesso modo?
Shobhit Puri,

2
Ti sei perso un aspetto importante. ... le dimensioni della libreria. Questo è il motivo principale per cui Picasso e UImageLoader non supportano GIF. Anche le licenze sarebbero buone da includere.
Codeversed

3
@AhamadullahSaikat Quelli che ha usato personalmente.
Pierre,

112

Fonti di affreschi | off site
(-)
- Enormi dimensioni della libreria
- Nessun callback con View, parametri Bitmap
- SimpleDraweeView non supporta wrap_content
- Enormi dimensioni della cache
(+)
- Caricatore di immagini piuttosto veloce (per immagini piccole e medie)
- Molta funzionalità (streaming, strumenti di disegno, gestione della memoria, ecc.)
- Possibilità di impostare direttamente in xml (ad esempio angoli arrotondati)
- Supporto GIF
- Supporto WebP e Webp animato


Fonti di Picasso | off site
(-)
- Caricamento lento di grandi immagini da Internet in ListView
(+)
- Dimensioni ridotte della libreria
- Dimensioni ridotte della cache
- Semplice da usare
- L'interfaccia utente non si blocca
- Supporto WebP


Glide source

(-)
- Grandi dimensioni della libreria
(+)
- Tinny dimensioni della cache
- Semplice da usare
- Supporto GIF
- Supporto WebP
- Caricamento rapido di grandi immagini da Internet in ListView
- L'interfaccia utente non si blocca
- BitmapPool per riutilizzare la memoria e quindi minori eventi GC


Fonti Universal Image Loader

(-)
- Funzionalità limitata (elaborazione immagine limitata)
- Il supporto al progetto è stato interrotto dal 27.11.2015
(+)
- Dimensione Tinny della libreria
- Semplice da usare


Testato da me su SGS2 (Android 4.1) (WiFi 8.43 Mbps)
Versioni ufficiali per Java, non per Xamarin!
19 ottobre 2015

Preferisco usare Glide.
Leggi di più qui .
Come scrivere cache su memoria esterna (scheda SD) con Glide.


4
"Caricatore di immagini piuttosto veloce" sembra contraddire "Blocco app" per Fresco.
TWiStErRob,

2
Ho Picasso in un progetto Xamarin e l'utilizzo della memoria era ENORME (usato per caricare le immagini nella vista del riciclo). OutOfMemorytutto il tempo ...
Vahid Amiri,

@ VSG24 ci sono 2 opzioni: 1) lo stai usando male. 2) La versione della libreria Android (Java) non è la stessa per Xamarain
Volodymyr Kulyk,

1
Come Glide negative (-) ho sperimentato molti sfarfallamenti. Le immagini caricate verrebbero "reimpostate" dal nulla
FRR,

1
@RJFares Ho provato l'ultima versione di recente, è possibile utilizzare ImagePipelineConfig.setDownsampleEnabled(true)per impedire il congelamento. Ma a volte salta i frame di una GIF. Se visualizzi solo immagini statiche sulla tua app, penso che puoi provarlo.
Kimi Chiu,

109

Queste risposte sono totalmente la mia opinione

risposte

  1. Picasso è un caricatore di immagini facile da usare, lo stesso vale per Imageloader. Fresco utilizza un approccio diverso al caricamento delle immagini, non l'ho ancora usato ma mi sembra più una soluzione per ottenere l'immagine dalla rete e memorizzarla nella cache, quindi mostrarle. poi viceversa come Picasso / Imageloader / Glide che per me sono più che mostrano un'immagine sullo schermo che fa anche ottenere immagini dalla rete e memorizzarle nella cache.

  2. Glide cerca di essere in qualche modo intercambiabile con Picasso. Penso che quando sono stati creati la mentalità di Picasso fosse seguire le specifiche HTTP e lasciare che il server decidesse i criteri di memorizzazione nella cache e memorizzasse le dimensioni massime e ridimensionasse su richiesta. Glide è lo stesso nel seguire le specifiche HTTP ma cerca di avere un footprint di memoria più piccolo facendo alcune ipotesi diverse come memorizzare nella cache le immagini ridimensionate anziché le immagini a dimensione intera e mostrare le immagini con RGB_565 anziché RGB_8888. Entrambe le librerie offrono la completa personalizzazione delle impostazioni predefinite.

  3. Quanto a quale libreria è la migliore da usare è davvero difficile da dire. Picasso, Glide e Imageloader sono librerie ben rispettate e ben testate, tutte facili da usare con le impostazioni predefinite. Sia Picasso che Glide richiedono solo 1 riga di codice per caricare un'immagine e avere un segnaposto e un'immagine di errore. Anche la personalizzazione del comportamento non richiede molto lavoro. Lo stesso vale per Imageloader, che è anche una libreria più vecchia di Picasso e Glide, tuttavia non l'ho usato, quindi non posso dire molto su prestazioni / utilizzo della memoria / personalizzazioni, ma guardare il readme su github mi dà l'impressione che sia anche relativamente facile da usare e configurare. Quindi, scegliendo una di queste 3 librerie non puoi prendere una decisione sbagliata, è più una questione di gusti personali.Come se l'SDK di Facebook non fosse ancora ufficialmente rilasciato su mavenCentral, non ho usato Facebook SDK da settembre 2014 e sembra che abbiano messo la prima versione online su mavenCentral nell'ottobre 2014. Quindi ci vorrà del tempo prima che possiamo ottenere buona opinione a riguardo.

  4. tra le 3 grandi librerie di nomi penso che non ci siano differenze significative. L'unico che spicca è l'affresco, ma è perché ha un approccio diverso ed è nuovo e non testato in battaglia.


3
Minor nit: sembra che l'SDK di Facebook sia stato ufficialmente disponibile come AAR su Maven Central per un po '. developers.facebook.com/docs/android/…
orip,

1
grazie per la correzione, è da un po 'che non uso l'SDK di Facebook, quindi non l'ho verificato. Tuttavia ci sono voluti troppo tempo per metterci dentro.
Aegis,

1
Un anno dopo aver letto questo, mi chiedo ancora se dovrei usare Frescoe e ancora non riesco a capire perché dovrei. Mentre Glide e Picasso lavorano fuori dagli schemi, Frescoe ha solo bisogno che tu faccia così tante cose che non sembra
valerne la

Voglio sottolineare che l'affresco ha problemi di memoria: github.com/facebook/react-native/issues/8711
Fabian Zeindl

Ho anche avuto problemi di memoria con l'affresco, sfortunatamente sembra che debba essere affresco o planata se hai bisogno di un supporto GIF animato. Anche FWIW ecco un link ad alcuni dettagli di confronto aggiuntivi.
Nick,

63

Né Glide né Picasso sono perfetti. Il modo in cui Glide carica un'immagine in memoria e fa la memorizzazione nella cache è meglio di Picasso che consente di caricare un'immagine molto più velocemente. Inoltre, aiuta anche a prevenire un'app dal popolare OutOfMemoryError. Il caricamento delle animazioni GIF è una funzione di uccisione fornita da Glide. In ogni caso Picasso decodifica un'immagine con una qualità migliore rispetto a Glide.

Quale preferisco? Anche se uso Picasso da così tanto tempo, devo ammettere che ora preferisco Glide. Ma ti consiglio di cambiare il formato Bitmap in ARGB_8888 e lasciare che Glide memorizzi nella cache sia l'immagine a dimensione intera sia ridimensionarla per prima. Il resto farebbe benissimo il tuo lavoro!

  • Il conteggio dei metodi di Picasso e Glide è rispettivamente a 840 e 2678.
  • La dimensione di Picasso (v2.5.1) è di circa 118 KB mentre quella di Glide (v3.5.2) di circa 430 KB.
  • Glide crea immagini memorizzate nella cache per dimensione mentre Picasso salva l'immagine completa e la elabora, quindi al caricamento mostra più velocemente con Glide ma utilizza più memoria.
  • Glide usa meno memoria di default con RGB_565.

+1 per Picasso Palette Helper .

C'è un post che parla molto del post Picasso vs Glide


Articolo eccellente. Sto passando a Glide ora. Anche meglio di Picasso non è quello che avevo in mente. :)
Sufian,

1
Un problema che vedo è che Glide richiede l'API 10. È un po 'un problema in quanto non riesco a eliminare il supporto API 9 dalla mia app. Altrimenti sicuramente un modo migliore per andare.
Sufian,

Puoi spiegare perché stai usando api 9? solo curioso ...
Daniel Gomez Rico,

A meno che non mi manchi qualcosa, è per supportare tutte le versioni di Gingerbread.
Sufian,

1
Penso che sia un po 'soggettivo. Ma è una cosa migliore supportare il maggior numero possibile di dispositivi / versioni. No? :)
Sufian,

18

Voglio condividere con voi un benchmark che ho fatto tra Picasso, Universal Image Loader e Glide : https://bit.ly/1kQs3QN

Fresco non rientrava nel benchmark perché per il progetto stavo eseguendo il test, non volevamo rifattorizzare i nostri layout (a causa della vista Drawee).

Quello che raccomando è Universal Image Loader per la sua personalizzazione, consumo di memoria ed equilibrio tra dimensioni e metodi.

Se hai un piccolo progetto, sceglierei Glide (o provare Fresco).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.