Быстрая (де) сериализация на iPhone - PullRequest
0 голосов
/ 13 июня 2010

Я разрабатываю игру / движок для iPhone OS.Я впервые использую Objective-C.

Я создал свой собственный двоичный формат для геометрических данных и текстур, в которых я сосредоточился на PVRTC.Это должен быть оптимальный подход с точки зрения скорости и пространства.Я действительно хочу свести время загрузки к минимуму и - если возможно - иметь возможность очень быстро экономить.

Так что теперь я пытаюсь сделать свои вещи "Entity" постоянными, не жертвуя при этом производительностью.

Сначала я хотел использовать NSKeyedArchiver.Из того, что я слышал, это не очень быстро.Кроме того, я хочу сериализовать в основном структуры, созданные из чисел с плавающей запятой с некоторыми целочисленными значениями и строками, поэтому на самом деле нет необходимости во всех этих «объектных графах».

NSArchiver был бы более уместным, нопо какой-то причине они отключили его от iphone.

Так что теперь я думаю о создании собственной схемы сериализации.Я ошибаюсь, думая, что NSKeyedArchiver работает медленно (я только это прочитал, сам не проверял)?Если да, то как лучше всего кодировать / декодировать структуры (без указателей, в основном с плавающей запятой), не жертвуя скоростью?

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Не пытайтесь оптимизировать то, что вы не тестировали ... это может быть "достаточно хорошо". Один намек; двоичный формат примерно в 2 раза быстрее и почти в 2 раза эффективнее памяти, чем формат XML.

Помимо этого ... ну ... вы попадаете во все виды конкретных случаев. Вам нужны все данные одновременно? Нужно ли транслироваться? Произвольные подмножества? Насколько это связано? Будет ли он преобразован в один или несколько объектов ObjC? Данные предварительно консервированы? etc.etc.etc ...

0 голосов
/ 14 июня 2010

Я получил хорошие результаты, используя yajl-objc как для сериализации, так и для связи с веб-сервисами в стиле REST; он достаточно эффективен для моих нужд и прост в использовании.

Это, как говорится, если у вас нет тонны данных NSKeyedArchiver, скорее всего, будет хорошо.

...