0

私はiPhoneOS用のゲーム/エンジンを開発しています。Objective-Cを使用するのは初めてです。

ジオメトリデータとPVRTCに焦点を当てているテクスチャ用に独自のバイナリ形式を作成しました。速度とスペースに関する限り、これが最適なアプローチになるはずです。読み込み時間を最小限に抑え、可能であれば、非常に高速に節約できるようにしたいと考えています。

だから今、私はパフォーマンスを犠牲にすることなく私の「エンティティ」のものを永続的にしようとしています。

まず、NSKeyedArchiverを使用したかった。私が聞いたところによると、それほど速くはありません。また、私がシリアル化したいのは、ほとんどの場合、いくつかのintと文字列を含むfloatで作成された構造体であるため、すべての「オブジェクトグラフ」オーバーヘッドは実際には必要ありません。

NSArchiverの方が適切だったでしょうが、彼らは何らかの理由でそれをiPhoneから始めました。

だから今、私は自分自身のシリアル化スキームをもう一度作ることを考えています。NSKeyedArchiverが遅いと思うのは間違っていますか(私はそれを読んだだけで、自分でテストしていません)?もしそうなら、速度を犠牲にすることなく構造体(ポインタなし、ほとんどがフロート)をエンコード/デコードするための最良の方法は何ですか?

4

2 に答える 2

1

テストしていないものをわざわざ最適化しないでください...それは「十分」かもしれません。1つのヒント。バイナリ形式は、XML形式の約2倍の速度で、メモリ効率はほぼ2倍です。

それを超えて...まあ...あなたはあらゆる種類のケース固有の問題に入ります。一度にすべてのデータが必要ですか?ストリーミングする必要がありますか?任意のサブセット?どのように接続されていますか?単一または多数のObjCオブジェクトに再構成されますか?データは事前​​に用意されていますか?etc.etc.etc..。

于 2010-06-14T04:44:08.003 に答える
0

シリアル化とRESTスタイルのWebサービスとの通信の両方にyajl-objcを使用すると良い結果が得られました。それは私のニーズに対して十分に効率的で、使いやすいです。

そうは言っても、大量のデータがない限り、NSKeyedArchiverうまくいく可能性があります。

于 2010-06-14T04:55:43.433 に答える