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


344

Temuan:

  1. Perbedaan antara Picasso v / s ImageLoader di sini ...
  2. Info tentang perpustakaan GLIDE di sini ...
  3. Sekarang baru-baru ini Facebook merilis perpustakaan gambar baru bernama Fresco

Pertanyaan:

  1. Apa perbedaan antara Picasso v / s Imageloader v / s Fresco
  2. Kapan kita bisa menggunakan Glide
  3. Yang merupakan perpustakaan terbaik untuk digunakan.
  4. Jika masing-masing perpustakaan memiliki makna sendiri, apakah itu?

Saya juga tertarik pada lukisan dinding. Adakah yang bisa menjelaskan perbedaannya?
Krit


8
Ini bukan tempat untuk mengajukan pertanyaan berdasarkan opini
danny117

16
@ danny117 jadi apa yang bisa kita lakukan di sini jika kita tidak tahu tentang itu?
Anand Savjani

2
@ShobhitPuri alat ini akan membantu Anda memeriksa hitungan metode
Nicholas Ng

Jawaban:


189

Saya adalah salah satu insinyur di proyek Fresco. Jadi jelas saya bias.

Tetapi Anda tidak harus mengambil kata saya untuk itu. Kami telah merilis aplikasi sampel yang memungkinkan Anda membandingkan kinerja lima perpustakaan - Fresco, Picasso, UIL, Glide, dan Volley Image Loader - berdampingan. Anda bisa mendapatkannya di repo GitHub kami .

Saya juga harus menunjukkan bahwa Fresco tersedia di Maven Central, sebagai com.facebook.fresco:fresco.

Fresco menawarkan fitur yang belum dimiliki Picasso, UIL, dan Glide:

  1. Gambar tidak disimpan di tumpukan Java, tetapi di tumpukan ashmem. Buffer byte menengah juga disimpan di heap asli. Ini menyisakan lebih banyak memori yang tersedia untuk digunakan aplikasi. Ini mengurangi risiko OutOfMemoryErrors. Ini juga mengurangi jumlah aplikasi pengumpulan sampah yang harus dilakukan, yang mengarah ke kinerja yang lebih baik.
  2. Gambar JPEG progresif dapat di-stream, seperti di browser web.
  3. Gambar dapat dipangkas di sekitar titik mana pun, bukan hanya bagian tengahnya.
  4. Gambar JPEG dapat diubah ukurannya secara asli. Ini menghindari masalah OOMing saat mencoba berhemat gambar.

Ada banyak lainnya ( lihat dokumentasi kami ), tetapi ini yang paling penting.


1
Terima kasih, dapatkah Anda melampirkan hasil "Kami telah merilis aplikasi sampel yang memungkinkan Anda membandingkan kinerja lima perpustakaan" dalam format tabel dengan jawaban Anda?
mmlooloo

1
Fresco memiliki beberapa fitur lebih banyak daripada yang lain, tetapi juga jauh lebih besar ..
ligi

4
mereka menambahkan 's' di bagian belakang tautan. github.com/facebook/fresco/tree/master/samples
JR Tan

@tyronen saya tertarik pada Fresco. Apakah ini memungkinkan untuk memuat gambar lokal sebagai gantinya dari jaringan? Terima kasih
GmloMalo

1
@adalah ya itu.
tyronen

131

Pikiran Anda bahwa ini adalah pertanyaan yang sangat berbasis pendapat, jadi saya berhenti membuat fjord dan membuat tabel cepat

masukkan deskripsi gambar di sini

Sekarang perbandingan perpustakaan sulit karena pada banyak parameter, keempat cukup banyak melakukan hal yang sama, kecuali mungkin untuk Fresco karena ada sejumlah optimasi tingkat memori baru di dalamnya. Jadi, beri tahu saya jika parameter tertentu ingin lihat perbandingan berdasarkan pengalaman saya.

Setelah menggunakan Fresco paling sedikit, jawabannya mungkin berkembang ketika saya terus menggunakan dan memahaminya untuk eksploitasi saat ini. Ituused personally adalah memiliki digunakan atleast perpustakaan sekali dalam aplikasi selesai.

* Catatan - Fresco sekarang mendukung animasi GIF dan WebP


1
Saya ingin tahu tentang peringkat yang lebih rendah 'Kemampuan Dapat Disesuaikan', 'Penggunaan Gambar Jaringan', dan 'Kemudahan penggunaan' untuk Fresco. Apa dasar dari peringkat ini?
tyronen

1
Sebagian besar penggunaan pertama, akan menggunakan Fresco sedikit lebih untuk mengerti, jawaban ini mungkin berkembang :)
Vrashabh Irde

1
@ Slartibartfast Apakah Anda mendapatkan kesempatan untuk mencoba Fresco dan versi Glide 3.0 terbaru? Apakah Anda masih menilai mereka sama?
Shobhit Puri

2
Anda melewatkan satu aspek penting. ... ukuran perpustakaan. Ini adalah alasan utama mengapa Picasso dan UImageLoader tidak mendukung GIF. Lisensi juga baik untuk dimasukkan.
Codeversed

3
@AhamadullahSaikat Yang dia gunakan secara pribadi.
Pierre

112

Sumber Fresco | di luar situs
(-)
- Ukuran perpustakaan yang besar
- Tidak ada panggilan balik dengan
tampilan , parameter Bitmap - SimpleDraweeView tidak mendukung wrap_content
- Ukuran cache yang besar
(+)
- Pemuat gambar yang cukup cepat (untuk gambar kecil & & sedang)
- Banyak fungsi (streaming, alat menggambar, manajemen memori, dll)
- Kemungkinan untuk mengatur secara langsung dalam xml (misalnya sudut bundar)
- Dukungan GIF
- Dukungan WebP dan Animasi Webp


Sumber Picasso | luar situs
(-)
- Lambat memuat gambar besar dari internet ke ListView
(+)
- Ukuran perpustakaan nyaring
- Ukuran cache yang kecil
- Sederhana digunakan
- UI tidak membeku
- Dukungan WebP


Sumber meluncur

(-)
- Ukuran perpustakaan yang besar
(+)
- Ukuran cache yang nyaring
- Mudah digunakan
- Dukungan GIF
- Dukungan WebP - Memuat
gambar besar dari internet ke dalam ListView
- UI tidak membeku
- BitmapPool untuk menggunakan kembali memori dan dengan demikian kejadian GC yang lebih rendah


Sumber Universal Image Loader

(-)
- Fungsionalitas terbatas (pemrosesan gambar terbatas)
- Dukungan proyek telah berhenti sejak 27.11.2015
(+)
- Ukuran pustaka nyaring
- Mudah digunakan


Diuji oleh saya di SGS2 (Android 4.1) (WiFi 8,43 Mbps)
Versi resmi untuk Java, bukan untuk Xamarin!
19 Oktober 2015

Saya lebih suka menggunakan Glide.
Baca lebih lanjut di sini .
Cara menulis cache ke Penyimpanan Eksternal (Kartu SD) dengan Glide.


4
"Pemuat gambar yang cukup cepat" tampaknya bertentangan dengan "Pembekuan aplikasi" untuk Fresco.
TWiStErRob

2
Saya memiliki Picasso dalam proyek Xamarin dan penggunaan memori adalah BESAR (digunakan untuk memuat gambar ke tampilan pendaur ulang). OutOfMemorysepanjang waktu ...
Vahid Amiri

@ VSG24 ada 2 opsi: 1) Anda salah menggunakannya. 2) Versi lib Android (java) tidak sama untuk Xamarain
Volodymyr Kulyk

1
Sebagai Glide negatif (-) Saya sudah mengalami banyak kedipan. Gambar yang dimuat akan "diatur ulang" entah dari mana
FRR

1
@RJFares Saya mencoba versi terbaru baru-baru ini, dapat Anda gunakan ImagePipelineConfig.setDownsampleEnabled(true)untuk mencegahnya membeku. Namun terkadang ia melewatkan bingkai GIF. Jika Anda hanya menampilkan gambar statis di aplikasi Anda, saya pikir Anda bisa mencobanya.
Kimi Chiu

109

Jawaban-jawaban ini sepenuhnya pendapat saya

Jawaban

  1. Picasso adalah pemuat gambar yang mudah digunakan, begitu pula dengan Imageloader. Fresco menggunakan pendekatan berbeda untuk memuat gambar, saya belum menggunakannya tetapi sepertinya saya lebih seperti solusi untuk mendapatkan gambar dari jaringan dan menyimpannya kemudian menampilkan gambar. kemudian sebaliknya seperti Picasso / Imageloader / Glide yang bagi saya lebih Menampilkan gambar di layar yang juga tidak mendapatkan gambar dari jaringan dan menyimpannya.

  2. Glide mencoba untuk agak dipertukarkan dengan Picasso.Saya pikir ketika mereka dibuat, pola pikir Picasso mengikuti spec HTTP dan membiarkan server memutuskan kebijakan caching dan cache berukuran penuh dan mengubah ukuran sesuai permintaan. Glide sama dengan mengikuti spesifikasi HTTP tetapi mencoba untuk memiliki jejak memori yang lebih kecil dengan membuat beberapa asumsi yang berbeda seperti cache gambar yang diubah ukurannya alih-alih gambar berukuran penuh, dan tampilkan gambar dengan RGB_565 bukan RGB_8888. Kedua perpustakaan menawarkan penyesuaian penuh dari pengaturan default.

  3. Pustaka mana yang terbaik untuk digunakan sangat sulit untuk dikatakan. Picasso, Glide dan Imageloader adalah pustaka yang sangat dihormati dan teruji dengan baik yang semuanya mudah digunakan dengan pengaturan default. Baik Picasso dan Glide hanya membutuhkan 1 baris kode untuk memuat gambar dan memiliki placeholder dan gambar kesalahan. Menyesuaikan perilaku juga tidak membutuhkan banyak pekerjaan. Hal yang sama berlaku untuk Imageloader yang juga merupakan perpustakaan yang lebih tua dari Picasso dan Glide, namun saya belum menggunakannya sehingga tidak bisa mengatakan banyak tentang kinerja / penggunaan memori / kustomisasi tetapi melihat readme di github memberi saya kesan bahwa itu juga relatif mudah digunakan dan diatur. Jadi dalam memilih salah satu dari 3 perpustakaan ini Anda tidak dapat membuat keputusan yang salah, itu lebih merupakan masalah selera pribadi.Seperti facebook, SDK masih belum dirilis secara resmi di mavenCentral. Saya belum terbiasa dengan facebook SDK sejak September 2014 dan tampaknya mereka telah memasang versi pertama online di mavenCentral pada Oktober 2014. Jadi, akan butuh waktu sebelum kita dapat memperoleh pendapat bagus tentang itu.

  4. antara 3 perpustakaan nama besar saya pikir tidak ada perbedaan yang signifikan. Satu-satunya yang menonjol adalah fresco tapi itu karena ia memiliki pendekatan yang berbeda dan baru dan tidak diuji pertempuran.


3
Minor nit: sepertinya SDK Facebook telah secara resmi tersedia sebagai AAR di Maven Central untuk sementara waktu. developers.facebook.com/docs/android/…
orip

1
Terima kasih untuk koreksi, sudah beberapa saat sejak saya menggunakan facebook SDK jadi saya belum memeriksanya. Masih butuh waktu terlalu lama untuk dimasukkan ke sana.
Aegis

1
Setahun kemudian setelah membaca ini, saya masih bertanya-tanya apakah saya harus menggunakan Fresco dan saya masih tidak bisa melihat mengapa saya harus menggunakannya. Sementara Glide dan Picasso bekerja di luar kotak, Frescoe hanya membutuhkan Anda untuk melakukan begitu banyak hal sehingga tidak terlihat layak dan ukurannya ....
frostymarvelous

Saya ingin menunjukkan bahwa fresco memiliki masalah memori: github.com/facebook/react-native/issues/8711
Fabian Zeindl

Saya juga mengalami masalah memori dengan fresco, sayangnya sepertinya harus fresco atau glide jika Anda memerlukan dukungan animasi gif. Juga FWIW di sini adalah tautan ke beberapa detail perbandingan tambahan.
Nick

63

Glide maupun Picasso tidak sempurna. Cara Glide memuat gambar ke memori dan melakukan caching lebih baik daripada Picasso yang membiarkan gambar dimuat jauh lebih cepat. Selain itu, ini juga membantu mencegah aplikasi dari OutOfMemoryError yang populer. Memuat GIF Animation adalah fitur membunuh yang disediakan oleh Glide. Bagaimanapun Picasso menerjemahkan gambar dengan kualitas yang lebih baik daripada Glide.

Yang mana yang saya sukai? Meskipun saya menggunakan Picasso untuk waktu yang sangat lama, saya harus mengakui bahwa sekarang saya lebih suka Glide. Tapi saya akan merekomendasikan Anda untuk mengubah Format Bitmap ke ARGB_8888 dan biarkan Glide cache gambar ukuran penuh dan mengubah ukurannya terlebih dahulu. Sisanya akan melakukan pekerjaan Anda dengan baik!

  • Hitungan metode Picasso dan Glide masing-masing adalah 840 dan 2678.
  • Ukuran Picasso (v2.5.1) sekitar 118KB sedangkan Glide (v3.5.2) sekitar 430KB.
  • Glide membuat gambar dalam cache per ukuran sementara Picasso menyimpan gambar penuh dan memprosesnya, jadi saat memuatnya ditampilkan lebih cepat dengan Glide tetapi menggunakan lebih banyak memori.
  • Glide menggunakan lebih sedikit memori secara default dengan RGB_565.

+1 Untuk Pembantu Palet Picasso .

Ada pos yang banyak berbicara tentang pos Picasso vs Glide


Artikel yang luar biasa. Saya beralih ke Glide sekarang. Bahkan lebih baik daripada Picasso bukanlah yang ada dalam pikiran saya. :)
Sufian

1
Satu masalah yang saya lihat adalah Glide membutuhkan API 10. Ini sedikit masalah karena saya tidak bisa menghentikan dukungan API 9 dari aplikasi saya. Kalau tidak pasti cara yang lebih baik untuk pergi.
Sufian

Bisakah Anda jelaskan mengapa Anda menggunakan api 9? hanya ingin tahu ...
Daniel Gomez Rico

Kecuali saya melewatkan sesuatu, itu untuk mendukung semua versi Gingerbread.
Sufian

1
Saya pikir ini agak subyektif. Tetapi itu adalah hal yang lebih baik untuk mendukung sebanyak mungkin perangkat / versi. Tidak? :)
Sufian

18

Saya ingin berbagi dengan Anda patokan yang telah saya lakukan di antara Picasso, Universal Image Loader, dan Glide : https://bit.ly/1kQs3QN

Fresco keluar dari tolok ukur karena untuk proyek saya menjalankan tes, kami tidak ingin memperbaiki tata letak kami (karena tampilan Drawee).

Apa yang saya rekomendasikan adalah Universal Image Loader karena penyesuaian, konsumsi memori, dan keseimbangan antara ukuran dan metode.

Jika Anda memiliki proyek kecil, saya akan pergi untuk Glide (atau mencoba Fresco).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.