Picasso v / s Imageloader v / s Fresco vs Glide [닫기]


344

결과:

  1. Picasso v / s ImageLoader의 차이점 ...
  2. GLIDE 라이브러리에 대한 정보는 여기 ...
  3. 최근 페이스 북은 프레스코 라는 새로운 이미지 라이브러리를 발표

질문 :

  1. Picasso v / s Imageloader v / s Fresco의 차이점은 무엇입니까?
  2. 우리는 언제 글라이드를 사용할 수 있습니까
  3. 사용하기 가장 좋은 라이브러리는 어느 것입니까?
  4. 각 도서관마다 고유 한 의미가 있다면 무엇입니까?

나는 프레스코에도 관심이 있습니다. 누구나 차이점을 설명 할 수 있습니까?
Krit


8
이것은 의견에 근거한 질문을 할 곳이 아닙니다
danny117

16
@ danny117 그래서 우리가 그것에 대해 전혀 모른다면 우리가 여기서 무엇을 할 수 있습니까?
Anand Savjani

2
@ShobhitPuri이 도구 는 분석법 수를 확인하는 데 도움 이 됩니다
Nicholas Ng

답변:


189

저는 Fresco 프로젝트 엔지니어 중 한 사람입니다. 분명히 나는 ​​편견입니다.

그러나 당신은 그것에 대해 내 말을 할 필요가 없습니다. Fresco, Picasso, UIL, Glide 및 Volley Image Loader의 5 가지 라이브러리의 성능을 나란히 비교할 수있는 샘플 앱을 출시했습니다. GitHub 리포지토리 에서 구할 수 있습니다 .

또한 Fresco는 Maven Central에서로 사용할 수 있음을 지적해야합니다 com.facebook.fresco:fresco.

Fresco는 Picasso, UIL 및 Glide에 아직없는 기능을 제공합니다.

  1. 이미지는 Java 힙에 저장되지 않지만 ashmem 힙에 저장됩니다. 중간 바이트 버퍼도 기본 힙에 저장됩니다. 따라서 응용 프로그램에서 사용할 수있는 메모리가 훨씬 더 많이 남습니다. OutOfMemoryErrors의 위험을 줄입니다. 또한 가비지 수집 앱의 양을 줄여 성능을 향상시킵니다.
  2. 웹 브라우저에서와 같이 프로그레시브 JPEG 이미지를 스트리밍 할 수 있습니다.
  3. 중앙뿐만 아니라 모든 지점에서 이미지를자를 수 있습니다.
  4. JPEG 이미지는 기본적으로 크기를 조정할 수 있습니다. 이렇게하면 이미지 크기를 줄이려고 할 때 OOMing 문제를 피할 수 있습니다.

다른 많은 것들이 있지만 ( 우리의 문서 참조 ) 가장 중요합니다.


1
감사합니다. "5 개의 라이브러리 성능을 비교할 수있는 샘플 앱을 출시했습니다"라는 결과를 표 형식으로 첨부 할 수 있습니까?
mmlooloo

1
Fresco는 다른 것보다 더 많은 기능을 가지고 있지만 더 큽니다 ..
ligi

4
그들은 링크의 뒷면에 's'를 추가했습니다. github.com/facebook/fresco/tree/master/samples
JR Tan

@tyronen 메신저 Fresco에 관심이 있습니다. 네트워크 대신 로컬 이미지를로드 할 수 있습니까? 감사합니다
GmloMalo

1
@ wedi 네 그렇습니다.
tyronen

131

이것은 매우 의견에 기반한 질문이라는 점을 명심하십시오. 그래서 나는 피오르드 제작을 중단하고 빠른 테이블을 만들었습니다.

여기에 이미지 설명을 입력하십시오

많은 매개 변수에서 라이브러리 비교는 어렵습니다. 프레스코는 새로운 메모리 수준 최적화가 많이 있기 때문에 Fresco를 제외하고는 거의 똑같은 일을합니다. 따라서 특정 매개 변수를 알려면 내 경험에 따라 비교를 참조하십시오.

Fresco를 가장 적게 사용한 결과, 현재 익스플로잇에 계속 사용하고 이해함에 따라 대답이 발전 할 수 있습니다. 는 used personally완성 된 응용 프로그램에 한 번 도서관이어야를 사용하는 데있다.

* 참고-Fresco는 이제 WebP 애니메이션뿐만 아니라 GIF도 지원합니다


1
Fresco의 낮은 '사용자 정의', '네트워크 이미지 사용'및 '사용 편의성'등급이 궁금합니다. 이 등급의 기초는 무엇입니까?
tyronen

1
대부분 처음 사용, 이해하기 좀 더 프레스코를 사용하는 것,이 답변 : 진화 할 수
Vrashabh Irde

1
@Slartibartfast Fresco와 최신 Glide 3.0 버전을 사용해 볼 기회가 있었습니까? 당신은 여전히 ​​같은 평가?
Shobhit Puri

2
한 가지 중요한 측면을 놓쳤습니다. ... 도서관 크기. 이것이 Picasso와 UImageLoader가 GIF를 지원하지 않는 주된 이유입니다. 라이센스도 포함하는 것이 좋습니다.
Codeversed

3
@AhamadullahSaikat 그가 개인적으로 사용한 것들.
Pierre

112

프레스코 소스 | 외부 사이트
(-)
-라이브러리의 큰 크기
-뷰가있는 콜백 없음, 비트 맵 매개 변수
-SimpleDraweeView는 wrap_content를 지원하지 않습니다
.-캐시의 큰 크기
(+)
-매우 빠른 이미지 로더 (작은 이미지 및 중간 이미지의 경우)
-많은 기능 (스트리밍, 그리기 도구, 메모리 관리 등)
-XML로 직접 설정 가능 (예 : 둥근 모서리)
- GIF 지원
- WebP 형식과 애니메이션 WebP 형식 지원


피카소 소스 | 오프 사이트
(-)
-인터넷에서 큰 이미지를 ListView
(+) 로 느리게로드
-라이브러리의 Tinny 크기
-작은 크기의 캐시
-간단한 사용
-UI가 고정되지 않음
-WebP 지원


글라이드 소스

(-)
- 큰 라이브러리의 크기
(+)
- 캐시의 주석 크기를
사용 간단한 -
- GIF 지원
- WebP 형식 지원
- ListView에로 인터넷에서 빠른 로딩 큰 이미지
UI가 동결되지 않은 -
- BitmapPool 재사용 메모리 및 따라서 적은 GC 이벤트


Universal Image Loader 소스

(-)
-제한된 기능 (제한된 이미지 처리)
-27.11.2015 이후 프로젝트 지원이 중단되었습니다
(+)
-라이브러리의 Tinny 크기
-간단한 사용


Xamarin이
아닌 Java 용 SGS2 (Android 4.1) (WiFi 8.43Mbps) 공식 버전에서 테스트했습니다!
2015 년 10 월 19 일

나는 글라이드를 선호합니다.
자세한 내용은 여기를 참조 하십시오 . 글라이드
로 외부 저장소 (SD 카드)에 캐시를 쓰는 방법 .


4
"Pretty fast image loader"는 Fresco의 "App freeze"와 모순되는 것 같습니다.
TWiStErRob

2
Xamarin 프로젝트에 Picasso가 있고 메모리 사용량이 엄청났습니다 (재활용 뷰에 이미지를로드하는 데 사용됨). OutOfMemory항상 ...
Vahid Amiri

@ VSG24에는 두 가지 옵션이 있습니다. 1) 잘못 사용하고 있습니다. 2) lib의 안드로이드 (java) 버전은 Xamarain과 동일하지 않습니다
Volodymyr Kulyk

1
글라이드 네거티브 (-)로서 나는 많은 깜박임을 경험했습니다. 로드 된 이미지는 아무데도 "재설정"됩니다.
FRR

1
@RJFares 최근에 최신 버전을 사용해 보았습니다 ImagePipelineConfig.setDownsampleEnabled(true). 얼어 붙지 않도록 사용할 수 있습니다 . 그러나 때로는 GIF 프레임을 건너 뜁니다. 앱에 정적 이미지 만 표시하면 시도해 볼 수 있습니다.
Kimi Chiu

109

이 답변은 완전히 내 의견입니다

대답

  1. Picasso는 이미지 로더를 사용하기 쉽고 이미지 로더와 동일합니다. Fresco는 이미지 로딩에 다른 접근 방식을 사용하지만 아직 사용하지는 않았지만 네트워크에서 이미지를 가져 와서 캐싱 한 다음 이미지를 표시하는 솔루션처럼 보입니다. 피카소 / 이미지 로더 / 글라이드와 같은 다른 방법은 네트워크에서 이미지를 가져 와서 캐싱하는 화면에 이미지를 표시하는 것입니다.

  2. 글라이드는 피카소와 어느 정도 상호 교환을 시도합니다. 피카소가 만들어 졌을 때 HTTP 사양을 따르고 서버가 캐싱 정책을 결정하고 전체 크기로 캐시하고 필요에 따라 크기를 조정할 수 있다고 생각합니다. 글라이드는 HTTP 사양을 따르는 것과 동일하지만 풀 사이즈 이미지 대신 크기가 조정 된 이미지를 캐시하고 RGB_8888 대신 RGB_565로 이미지를 표시하는 등의 다른 가정을함으로써 더 작은 메모리 공간을 차지하려고합니다. 두 라이브러리 모두 기본 설정의 전체 사용자 정의를 제공합니다.

  3. 어떤 라이브러리가 가장 사용하기 가장 좋은지 말하기는 어렵습니다. Picasso, Glide 및 Imageloader는 모두 기본 설정으로 사용하기 쉬운 존경받는 테스트 라이브러리입니다. Picasso와 Glide 모두 이미지를로드하고 자리 표시 자 및 오류 이미지가있는 한 줄의 코드 만 필요합니다. 동작을 사용자 정의 할 때 많은 작업이 필요하지 않습니다. Picasso와 Glide보다 오래된 라이브러리 인 Imageloader도 마찬가지입니다. 그러나 그것을 사용하지 않았으므로 성능 / 메모리 사용량 / 사용자 정의에 대해 많이 말할 수는 없지만 github에서 readme를 보면 나에게도 인상적입니다. 비교적 사용 및 설정이 쉽습니다. 따라서이 3 개의 라이브러리 중 하나를 선택하면 잘못된 결정을 내릴 수 없으며 개인적인 취향의 문제입니다.페이스 북 SDK가 여전히 공식적으로 mavenCentral에 릴리스 되지 않은 것처럼 2014 년 9 월 이후로 sdk를 페이스 북에 사용하지 않았으며 2014 년 10 월 mavenCentral의 첫 번째 버전을 온라인에 올린 것처럼 보입니다. 그것에 대한 좋은 의견.

  4. 3 개의 큰 이름 라이브러리 사이에는 큰 차이가 없다고 생각합니다. 눈에 띄는 유일한 것은 프레스코이지만 그것은 다른 접근 방식을 가지고 있고 새롭고 전투 테스트를 거치지 않았기 때문입니다.


3
사소한 문제 : Facebook SDK는 Maven Central에서 AAR로 공식적으로 오랫동안 사용 가능한 것으로 보입니다. developers.facebook.com/docs/android/…
orip

1
수정을위한 thx, 페이스 북 SDK를 사용한 지 얼마되지 않아서 확인하지 않았습니다. 아직도 거기에 넣기에는 너무 오래 걸렸습니다.
Aegis

1
이 글을 읽은 지 1 년이 지났는데도 여전히 Frescoe를 사용 해야하는지 궁금하지만 여전히 왜 그래야하는지 알 수 없습니다. 활공과 피카소는 즉시 사용 가능하지만 Frescoe는 그만한 가치와 크기처럼 보이지 않는 많은 일을해야합니다 ....
frostymarvelous

프레스코에 메모리 문제가 있다고 지적하고 싶습니다 : github.com/facebook/react-native/issues/8711
Fabian Zeindl

또한 프레스코와 관련된 메모리 문제가 발생했습니다. 불행히도 애니메이션 GIF 지원이 필요한 경우 프레스코 또는 활공 중 하나 인 것 같습니다. 또한 여기 에 몇 가지 추가 비교 세부 사항에 대한 링크 가 있습니다.
Nick

63

글라이드 나 피카소 모두 완벽하지는 않습니다. 글라이드가 이미지를 메모리에로드하고 캐싱하는 방식은 이미지가 훨씬 빠르게로드되는 피카소보다 낫습니다. 또한 앱이 인기있는 OutOfMemoryError를 방지하는 데 도움이됩니다. GIF 애니메이션 로딩은 글라이드에서 제공하는 킬링 기능입니다. 어쨌든 피카소는 글라이드보다 품질이 좋은 이미지를 디코딩합니다.

어느 것을 선호합니까? 피카소를 매우 오랫동안 사용했지만 이제는 글라이드를 선호한다는 것을 인정해야합니다. 그러나 비트 맵 형식을 ARGB_8888로 변경하고 글라이드가 전체 크기 이미지와 크기를 먼저 캐시하도록 권장합니다. 나머지는 당신의 일을 훌륭하게 할 것입니다!

  • 피카소와 글라이드의 방법 수는 각각 840과 2678입니다.
  • 피카소 (v2.5.1)의 크기는 약 118KB이고 글라이드 (v3.5.2)의 크기는 약 430KB입니다.
  • 글라이드는 크기별로 캐시 된 이미지를 생성하는 반면, 피카소는 전체 이미지를 저장하고 처리하므로로드시 글라이드에서는 더 빠르게 표시되지만 더 많은 메모리를 사용합니다.
  • 글라이드는 기본적으로 메모리를 덜 사용 RGB_565합니다.

피카소의 경우 1 팔레트 도우미 .

Picasso vs Glide post에 대해 많이 이야기하는 게시물이 있습니다.


훌륭한 기사. 지금 글라이드로 전환하고 있습니다. 피카소보다 더 나은 것은 내가 생각한 것이 아닙니다. :)
Sufian

1
내가 볼 수있는 한 가지 문제는 Glide에 API 10이 필요하다는 것입니다. 내 앱에서 API 9 지원을 중단 할 수 없기 때문에 약간의 문제입니다. 그렇지 않으면 분명히 더 좋은 방법입니다.
Sufian

API 9를 사용하는 이유를 설명 할 수 있습니까? 그냥 궁금해서 ...
Daniel Gomez Rico

내가 빠진 것이 아니라면 모든 진저 브레드 버전을 지원해야합니다.
Sufian

1
약간 주관적이라고 생각합니다. 그러나 가능한 많은 장치 / 버전을 지원하는 것이 좋습니다. 아니? :)
Sufian

18

나는 Picasso, Universal Image Loader 및 Glide에서 수행 한 벤치 마크 를 당신과 공유하고 싶습니다 : https://bit.ly/1kQs3QN

Fresco는 테스트를 실행하는 프로젝트의 경우 Drawee 뷰 때문에 레이아웃을 리팩터링하고 싶지 않기 때문에 벤치 마크에서 벗어났습니다.

내가 권장하는 것은 사용자 정의, 메모리 소비 및 크기와 방법 사이의 균형 때문에 Universal Image Loader 입니다.

작은 프로젝트 가 있다면 글라이드를 방문 하거나 Fresco를 사용해보십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.