Picasso v / s Imageloader v / sフレスコvsグライド[終了]


344

調査結果:

  1. 違いここピカソV / sのImageLoader ...
  2. ライブラリーGLIDEに関する情報はこちら...
  3. 最近Facebookはフレスコと呼ばれる新しい画像ライブラリをリリースしました

質問:

  1. Picasso v / s Imageloader v / s Frescoの違いは何ですか
  2. いつグライドを使用できますか
  3. どちらが使用に最適なライブラリです。
  4. 各ライブラリに独自の意味がある場合、それらは何ですか?

フレスコ画にも興味があります。誰でも違いを説明できますか?
クリット2015


8
ここは意見に基づいた質問をする場所ではありません
danny117

16
@ danny117だから、私たちがそれについて何も知らない場合、私たちはここで何ができますか?
Anand Savjani 2015

2
@ShobhitPuriこのツールは、メソッド数のチェックに役立ちます
Nicholas Ng

回答:


189

私はフレスコプロジェクトのエンジニアの一人です。だから明らかに私は偏っています。

しかし、あなたは私の言葉を取る必要はありません。5つのライブラリ(Fresco、Picasso、UIL、Glide、およびVolley Image Loader)のパフォーマンスを並べて比較できるサンプルアプリをリリースしました。GitHubリポジトリで入手できます。

また、FrescoはMaven Centralでも利用できることを指摘しておきますcom.facebook.fresco:fresco

フレスコは、ピカソ、UIL、およびグライドがまだ備えていない機能を提供します。

  1. 画像はJavaヒープではなく、ashmemヒープに保存されます。中間バイトバッファーもネイティブヒープに格納されます。これにより、アプリケーションで使用できるメモリが大幅に増えます。OutOfMemoryErrorsのリスクを軽減します。また、アプリが実行する必要のあるガベージコレクションの量が減り、パフォーマンスが向上します。
  2. プログレッシブJPEG画像は、Webブラウザーと同様にストリーミングできます。
  3. 画像は、中央だけでなく、任意の点を中心にトリミングできます。
  4. JPEG画像はネイティブでサイズ変更できます。これにより、画像を縮小しようとする際のOOMingの問題が回避されます。

他にもたくさんありますが(ドキュメントを参照)、これらは最も重要です。


1
おかげで、「5つのライブラリのパフォーマンスを比較できるサンプルアプリをリリースしました」の結果を表形式で回答に添付できますか?
mmlooloo 2015

1
フレスコには他のフレスコよりいくつかの機能がありますが、それよりも
はるかに

4
リンクの後ろに「s」を追加しました。github.com/facebook/fresco/tree/master/samples
JR Tan

@tyronen imフレスコに興味があります。ネットワークからローカルイメージを読み込むことはできますか?ありがとう
GmloMalo

1
@wediはい、そうです。
タイロネン2018年

131

これは非常に意見に基づく質問であることを覚えておいて、私はフィヨルドの作成をやめて簡単な表を作りました

ここに画像の説明を入力してください

多くのパラメーターでは、4つすべてがほぼ同じことを行うため、ライブラリの比較は困難です。フレスコを除いて、新しいメモリレベルの最適化がたくさんあるためです。特定のパラメーターが必要な場合は、お知らせください私の経験に基づく比較を参照してください。

フレスコを最小限に使用していたため、現在のエクスプロイトでフレスコを使用および理解し続けると、答えが進化する可能性があります。used personally完成アプリで一度ライブラリ少なくともを使用しましたさ。

*注意-FrescoはGIFとWebPアニメーションをサポートするようになりました


1
フレスコの「カスタマイズ可能性」、「ネットワークイメージの使用」、および「使いやすさ」の評価の低下に興味があります。これらの評価の根拠は何ですか?
タイロネン2015年

1
ほとんどが最初の使用で、理解するためにフレスコをもう少し使用します。この答えは進化するかもしれません:)
Vrashabh Irde

1
@Slartibartfastフレスコと最新のGlide 3.0バージョンを試す機会はありましたか?それでも同じように評価しますか?
Shobhit Puri 2015

2
あなたは一つの重要な側面を見逃しました。...ライブラリのサイズ。これが、ピカソとUImageLoaderがGIFをサポートしない主な理由です。ライセンスも含めるとよいでしょう。
1

3
@AhamadullahSaikat彼が個人的に使用したもの。
ピエール

112

フレスコ ソース | オフサイト
(-)
-巨大なサイズのライブラリ
-コールバックなし、ビュー、ビットマップパラメータ
-SimpleDraweeViewはwrap_contentをサポートしていません
-巨大なサイズのキャッシュ
(+)
- 非常に高速な画像ローダー(小さい画像と中程度の画像用)
-多くの機能(ツール、メモリ管理などを描く、ストリーミング)
-可能性のセットアップに直接XMLで(例えば、ラウンドコーナーのために)
- GIFのサポート
- WEBPとアニメーションWEBPサポート


ピカソ ソース | オフサイト
(-)
-インターネットからListViewへの大きな画像の読み込みが遅い
(+) -小さなサイズの
ライブラリ
-小さなサイズのキャッシュ
-シンプルな使用
-UIがフリーズしない
-WebPサポート


グライド

( - )
-ビッグライブラリーのサイズ
(+)
-キャッシュの安っぽいサイズ
、使用中のシンプル-
- GIFのサポート
- WEBPサポート
-リストビューへのインターネットからの高速読み込み、大きな画像
UIが凍結されていません-
- BitmapPool再利用メモリへとしたがって、GCイベントが少ない


ユニバーサルイメージローダーの ソース

(-)
-機能制限(画像処理の制限)
-2015年11月27日以降、プロジェクトのサポートは停止
(+)
- 小さなサイズのライブラリ
-シンプルな使用


SGS2(Android 4.1)(WiFi 8.43 Mbps)で私がテストしました。Xamarin
用ではなく、Java用の公式バージョンです。
2015年10月19日

グライドを使用することを好みます。
詳細はこちらGlideで
キャッシュを外部ストレージ(SDカード)に書き込む方法


4
「かなり高速な画像ローダー」は、Frescoの「アプリのフリーズ」と矛盾しているようです。
TWiStErRob 2016年

2
XamarinプロジェクトでPicassoを使用していて、メモリ使用量が膨大でした(画像をリサイクラービューにロードするために使用されました)。OutOfMemory常に...
Vahid Amiri

@ VSG24には2つのオプションがあります。1)間違って使用しています。2)Android(Java)バージョンのlibはXamarainと同じではありません
Volodymyr Kulyk

1
グライドネガティブ(-)として、私は多くのちらつきを経験しました。ロードされた画像はどこからともなく「リセット」される
FRR

1
@RJFares最近の最新バージョンを試してみたImagePipelineConfig.setDownsampleEnabled(true)ところ、フリーズを防ぐのに使えます。ただし、GIFのフレームがスキップされる場合があります。アプリに静止画像のみを表示する場合は、ぜひお試しください。
Kimi Chiu 2017年

109

これらの答えは完全に私の意見です

答え

  1. ピカソは使いやすい画像ローダーです。Imageloaderも同様です。Frescoは画像の読み込みに別のアプローチを使用しています。まだ使用していませんが、ネットワークから画像を取得してキャッシュし、画像を表示するためのソリューションに似ています。次に、ピカソ/イメージローダー/グライドのように、ネットワークから画像を取得してキャッシュする画面上に画像を表示します。

  2. グライドはピカソと多少互換性を保とうとします。ピカソが作成されたとき、私はピカソの考え方がHTTP仕様に従っており、サーバーがキャッシュポリシーを決定し、フルサイズでキャッシュし、必要に応じてサイズ変更できるようにしたと思います。グライドはHTTP仕様に従うことと同じですが、フルサイズの画像の代わりにサイズ変更された画像をキャッシュし、RGB_8888の代わりにRGB_565で画像を表示するなど、いくつかの異なる仮定を行うことでメモリフットプリントを小さくしようとします。どちらのライブラリも、デフォルト設定を完全にカスタマイズできます。

  3. どのライブラリが最適であるかについては言うのは本当に難しいです。Picasso、Glide、Imageloaderは、十分に評価され、十分にテストされたライブラリであり、すべてデフォルト設定で簡単に使用できます。PicassoとGlideはどちらも、画像を読み込んでプレースホルダーとエラー画像を持つために1行のコードしか必要としません。動作のカスタマイズもそれほど多くの作業を必要としません。ピカソやグライドよりも古いライブラリでもあるImageloaderにも同じことが言えますが、私はそれを使用していないため、パフォーマンス/メモリ使用量/カスタマイズについてはあまり言えませんが、githubのreadmeを見ると、それもまた同じだという印象を与えます比較的使いやすくセットアップも簡単です。したがって、これらの3つのライブラリのいずれかを選択する場合、間違った決定をすることはできません。それは、個人的な好みの問題です。Facebook SDKがまだmavenCentralで正式にリリースされていないように、2014年9月以降、SDKをfacebookに使用したことがなく、2014年10月に最初のバージョンがmavenCentralでオンラインになっているようです。それについての良い意見。

  4. 3つのビッグネームライブラリの間には、大きな違いはないと思います。目立つのはフレスコ画だけですが、それはアプローチが異なり、新しく、戦闘テストされていないためです。


3
マイナーニット:Facebook SDKはMaven CentralでAARとして正式に利用可能になっているようです。developers.facebook.com/docs/android/...
oriPを

1
訂正はthxです。facebookSDKを使って久しぶりなので確認していませんでした。それでも彼らがそこに置くのに時間がかかりすぎました。
イージス

1
これを読んでから1年後、フレスコを使用する必要があるかどうかまだ疑問に思っています。グライドとピカソは箱から出して動作しますが、フレスコエはあなたにそれが価値があるように見えないほど多くのことをする必要があるだけです...
frostymarvelous

フレスコにはメモリの問題があることを指摘しておきます:github.com/facebook/react-native/issues/8711
Fabian Zeindl

フレスコのメモリの問題も経験しましたが、残念ながらアニメーションGIFのサポートが必要な場合はフレスコまたはグライドのいずれかである必要があります。また、FWIWには、いくつかの追加の比較の詳細へのリンクがあります。
ニック

63

グライドもピカソも完璧ではありません。Glideが画像をメモリに読み込んでキャッシュする方法は、画像の読み込みをはるかに高速にするPicassoよりも優れています。さらに、人気のあるOutOfMemoryErrorからアプリを防ぐのにも役立ちます。GIFアニメーションの読み込みは、Glideによって提供される強制終了機能です。とにかく、ピカソはグライドよりも品質の高い画像をデコードします。

私はどちらが好きですか?私は非常に長い間ピカソを使用していますが、今はグライドを好むことを認めざるを得ません。ただし、ビットマップ形式をARGB_8888に変更して、Glideにフルサイズの画像とサイズ変更された画像の両方を最初にキャッシュさせることをお勧めします。残りはあなたの仕事を素晴らしいものにするでしょう!

  • ピカソとグライドのメソッド数はそれぞれ840と2678です。
  • Picasso(v2.5.1)のサイズは約118KB、Glide(v3.5.2)のサイズは約430KBです。
  • Glideはサイズごとにキャッシュされた画像を作成し、Picassoは画像全体を保存して処理するため、ロード時にGlideを使用するとより速く表示されますが、より多くのメモリを使用します。
  • を使用すると、Glideのデフォルトで使用するメモリが少なくなりますRGB_565

+1ピカソパレットヘルパー

グライド対ピカソについてたくさん話をポストがありますポストは、


素晴らしい記事。今グライドに切り替えています。ピカソよりも良いとは思いませんでした。:)
スーフィアン

1
私が目にする問題の1つは、GlideにAPI 10が必要なことです。API9サポートをアプリから削除できないため、少し問題があります。そうでなければ確かに行くより良い方法です。
スーフィアン2015

API 9を使用している理由を説明できますか?好奇心旺盛...
ダニエルゴメスリコ

私が何か足りないのでなければ、それはすべてのジンジャーブレッドバージョンをサポートすることです。
スーフィアン2015

1
少し主観的だと思います。ただし、できるだけ多くのデバイス/バージョンをサポートすることをお勧めします。番号?:)
Sufian '19 / 09/15

18

Picasso、Universal Image Loader、Glideで行ったベンチマークをお伝えしたいと思います。https//bit.ly/1kQs3QN

フレスコは、私がテストを実行していたプロジェクトのために、レイアウトをリファクタリングしたくなかったので(Draweeビューのため)、ベンチマークから外れていました。

私がお勧めするのは、カスタマイズ、メモリ消費、サイズとメソッドのバランスのため、ユニバーサルイメージローダーです。

あなたが持っている場合 小さなプロジェクト、私はグライドに行くでしょう(またはフレスコを試してみます)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.