Gibt es einen großen Vorteil bei der Verwendung von SDWebImage über AFNetworking für das Laden von Bildern?

8

Behauptungen von SDWebImage , dass AFNetworking den Cache nicht zwischenspeichert Image selbst, sondern nur die HTTP-Antwort, so dass SDWebImage das Bild schneller aus dem Cache abrufen und darstellen kann.

Wenn ich rein AFNetworking verwenden möchte, ist ein solcher Anspruch, richtig oder nicht, wirklich etwas, das sich leistungsmäßig bemerkbar macht? Ist es etwas, vor dem ich mich hüten sollte?

    
Doug Smith 05.01.2014, 00:22
quelle

3 Antworten

16

SDWebImage hat viel mehr Kontrolle über das Image-Caching. Es kann auf Festplatte oder Arbeitsspeicher zwischengespeichert werden.

AFNetworking setzt NSURLCache ein, um Bilder zwischen App-Starts persistent zu machen (und es ist nicht sehr zuverlässig), aber es ist großartig, wenn Sie nur während eines Laufs cachen müssen.

Bei beiden Lösungen wird während der Lebensdauer der App ein UIImage-Objekt im Speicher zwischengespeichert. Dies ist wichtig, da das Zwischenspeichern der NSData-Darstellung nicht schnell genug ist, um Bilder beim Scrollen durch eine Tabellenansicht reibungslos zu laden.

Zusammenfassung: Die Lösung von AFNetworking ist einfacher und funktioniert für die meisten Anwendungsfälle. Wenn Sie eine feinere Steuerung oder das Zwischenspeichern von Datenträgern benötigen, verwenden Sie SDWebImage, anstatt die Implementierung von AFNetworking zu ändern.

    
Aaron Brager 05.01.2014, 00:36
quelle
2

Ich habe beide verwendet:

SDWebImage ist viel schneller als UIImage + AFNetworking.

In UITableViewCell können Sie den signifikanten Unterschied in der Leistung sehen. Es hat viel Zeit in AFNetworking gekostet und der Code ist auch zu lang. SDWebImage ist viel schneller und kurz.

Verwenden Sie SDWebImage für eine bessere Bildleistung.

    
coreDeviOS 28.11.2014 12:12
quelle
1

Es ist nicht wahr.

Wenn Sie sich den Code ansehen, können Sie das sehen die Kategorie UIImageView+AFNetworking cache die UIImage (mit NSCache und urlRequest als Schlüssel). Der Cache wird jedoch nicht auf die Festplatte geschrieben.

    
toasted_flakes 05.01.2014 00:32
quelle