2009-06-25 19 views
23

Ich frage mich, ob jemand reale Zahlen auf Leistungsunterschiede zwischen einer alten SQLite-Anwendung hat, die im 3.0 SDK zu Core Data konvertiert wurde.Core Data vs Sqlite und Leistung

Ich vermute, dass unter der Haube Core Data nur sqlite sowieso verwendet und dass es ein wenig Overhead für die Kosten der Bequemlichkeit hinzufügen, aber ich dachte, ich würde sowieso fragen.

+3

Es besteht keine Notwendigkeit, dies zu "verdächtigen". In der Dokumentation wird sehr deutlich angegeben, dass Sie die Option eines SQLite-Speichers haben. –

Antwort

34

Core Data ist in Bezug auf Caching, Lazy-Loading und Speicherverwaltung stark optimiert.

Wenn Sie es verwenden (mit dem SQLite-Speichertyp), insbesondere in Verbindung mit NSFetchedResultsController, sollten Sie eine bessere Leistung erzielen als mit SQLite allein.

Apple hat hart daran gearbeitet, Core Data auf dem iPhone gut zu machen. Meine Anwendung wechselte von SQLite w/FMDB zu Core Data und ist jetzt schneller und stabiler mit weniger Code.

+0

Ich hatte den allgemeinen Eindruck, dass Core Data nur einen zusätzlichen Aufwand für SQLite bedeuten würde, aber mir wurde gezeigt, dass alles, was Sie beschreiben, wahr ist. Tatsächlich glaube ich, dass das Adressbuch des iPhone jetzt auf Core Data in 3.0 basiert. Das ist ein ziemlich starkes Vertrauensvotum. –

+0

Ich glaube, die iPod-App ist jetzt auch. – Hunter

+0

Great info ... danke – Lounges

2

Core-Daten können sqllite verwenden - es ist Aufgabe des Entwicklers zu konfigurieren - so Ihr Verdacht richtig. Am Telefon würde ich vorschlagen, dass sqllite die beste Idee ist.

Ich denke, einer der größten Vorteile, die Sie durch die Verwendung von Core Data erzielen können, ist das verzögerte Laden von Daten und die Fehler, um Speicher zu sparen. Sie müssen also auch über solche Dinge nachdenken, wenn Sie die Leistung in Betracht ziehen, da die Menge an freiem Speicher, die Sie haben, sich auch auf die Leistung auswirkt.