Ich füge Peer-to-Peer-Bluetooth mit GameKit zu einem iPhone Shoot-em-up, so Geschwindigkeit ist von entscheidender Bedeutung. Ich sende etwa 40 Nachrichten pro Sekunde, die meisten davon mit dem schnelleren GKSendDataUnreliable, alle serialisieren mit NSCoding. Beim Testen zwischen 3G und 3GS verlangsamt dies die 3G viel mehr, als ich möchte. Ich frage mich, wo ich meine Bemühungen konzentrieren sollte, um es zu beschleunigen.iPhone: Welche sind die nützlichsten Techniken für schnellere Bluetooth?
Wie viel langsamer ist GKSendDataReliable? Für die wenigen Pakete, die haben, um dorthin zu kommen, wäre es schneller, ein GKSendDataUnreliable zu senden und der Peer eine Bestätigung senden, damit ich wieder senden kann, wenn ich nicht die Bestätigung innerhalb, sagen wir, 100ms?
Wie viel schneller wäre es, die NSData -Instanz mit einem normalen C-Array anstatt mit dem NSCoding-Protokoll zu erstellen? Ist dieser Serialisierungsprozess (für etwa ein Dutzend Floats) genauso langsam, wie Sie es von einem Objekterstellungs-/Freigabe-Overhead erwarten würden, oder läuft etwas besonders langsam?
Ich habe gehört, dass (zum Beispiel) das Senden von vier separaten Datensätzen viel, viel langsamer ist, als das Senden eines Datenstücks, das viermal so groß ist. Würde ich eine signifikante Ersparnis erzielen, indem ich separate Datenpakete aussende, die nicht immer im gleichen Paket zusammenlaufen, wenn sie gleichzeitig passieren?
Gibt es noch andere Bluetooth-Leistungsgeheimnisse, die ich verpasst habe?
Danke für Ihre Hilfe.