原文鏈接(英文):git
https://github.com/rs/SDWebImage/wiki/How-is-SDWebImage-better-than-X%3Fgithub
自從iOS5.0以後,NSURLCache 已經加入了硬盤緩存操做,那麼SDWebImage對比樸實的NSURLRequest有什麼優點呢?緩存
NSURLCache 在iOS5以後加入了未加工的HTTP返回值的內存和閃存緩存。每一次緩存查找命中,app都會將原生的數據轉換成UIImage。這種操做須要一些額外的解析操做:HTTP數據的解碼、內存拷貝等等。app
另外一方面,SDWebImage 將UIImage緩存到內存,可是會將通過壓縮和解碼的圖片存入閃存。UIImage就像用NSCache存入內存中同樣,沒有額外的內存複製,並且能夠在你的app須要內存的時候騰出內存空間。異步
另外,在你第一次在UIImageView中使用UIImage的時候,主線程上的image解壓操做會被SDWebImageDecoder轉移到後臺去。性能
最後,SDWebImage 能夠徹底避免複雜、錯誤配置的HTTP緩存通訊,這極大的加速了緩存查找。spa
AFNetworking也在UIImageView中加入了類似的類,那SDWebImage 是否是仍有用武之地?線程
AFNetworking 並無針對閃存的緩存操做而是僅僅依賴於系統的表現。前一個問題的答案回答了這個問題。同時,AFNetworking 也沒有圖片的後臺解壓操做。另外AFNetworking 沒法保證一樣的URL不會被下載數次。code
假如你已經使用了AFNetworking ,僅僅須要一個比較簡單的異步圖片加載功能類,對性能和內存使用並無過高要求的話,AFNetworking 的UIImageView 類應該能知足你的需求。圖片
額外閱讀:SDWebImage緩存圖片的機制