2011-01-16 5 views
0

Ich arbeite an einer Game-Engine in Ziel-c, wo Entitäten on-the-Fly-Anpassung von Attributen für jede Entität haben sollen. Anfangs dachten wir darüber nach, NSDictionary zu verwenden, sind uns aber auch des Ziel-C-Ports von Redis bewusst.Verwendung von Hredis vs NSDictionary

Meine Frage ist, dass wir irgendwelche Leistungsgewinne mit Redis über NSDictionary haben werden?

Antwort

3

Redis ist eine Persistenzlösung. NSDictionary ist ein speicherinterner Schlüsselwertspeicher mit spezifischen Einschränkungen für Schlüssel und Werte.

Die beiden konzentrieren sich auf die Lösung verschiedener Probleme.

Wenn Sie die Frage zur Persistenz von Objektdiagrammen neu formulieren, lautet die Antwort "Core Data", es sei denn, es gibt eine bestimmte, wahrscheinlich übergreifende Plattform, die etwas anderes benötigt.

+0

Entitäten müssen nur im Speicher beibehalten werden, während das Spiel abgespielt wird. Es besteht die Möglichkeit, dass wir das Spiel in Zukunft speichern möchten, dies sollte jedoch keine Auswirkungen auf die Laufzeit haben. Daher ist CoreData möglicherweise nicht so geeignet. Redis wird als Schlüssel-Wert-Speicher beschrieben, der im Speicher verbleibt, mit Optionen, die auf die Festplatte, andere Knoten usw. geschrieben werden können. Wir sind besorgt über die Leistung. – Jaryl

+1

Gehen Sie mit NSDictionary, um der Einfachheit halber zu starten. Wenn es ein Leistungsproblem gibt, messen und adressieren Sie es. Wenn Sie keine Ausnahmesituation haben, würden Sie sich schwer tun, etwas zu entwerfen, bei dem NSDictionary der Leistungsengpass sein wird (sicherlich kann es getan werden - aber das Problem ist auf einem höheren Niveau, fast immer). – bbum

+0

Ich habe keine konkreten Daten (nie Redis verwendet), aber wenn Sie die Frage auf diese Weise einrahmen: "Was würden Sie erwarten, bessere Leistung, die native Schlüssel-Wert-Mechanismus von allen Apple-Frameworks oder ein Objective- C-Client im Gespräch mit einem Universalschlüssel-Datenbankserver? ", Ich weiß, wo ich meine Wetten platzieren würde. –

Verwandte Themen