В Objective-C, создавая приложения iOS, что лучше всего подходит для сериализации? Protobuf или JSON?Protobuf vs JSON - Objective-C/iOS
ответ
Protobuf более эффективен по времени и пространству, JSON, вероятно, более эффективен с точки зрения нервов. Пока нет причин для первых двух (например, из-за того, что количество сериализуемых данных невелико, а сериализация не является критичной по времени), я буду придерживаться JSON.
Это также делает отладку более весело :-)
Я не знаю Protobuf, но JSONKit - очень хороший выбор на iOS. См. JSON vs. PLIST, the Ultimate Showdown для сравнения производительности. JSONKit широко используется и активно развивается, что делает его надежным выбором.
Спасибо вам ответить, я буду видеть JSON против PLIST ссылки, но я действительно заинтересован в Protobuf против JSON. –
Что касается этого сайта, обратите внимание, что структура JSON от Apple является общедоступной с iOS 5 по сравнению с NSJSONSerialization. Ожидайте от сторонних решений отказаться. – Tommy
@ Tommy: Поскольку JSONKit работает быстрее, и многие приложения должны поддерживать iOS <5, я не думаю, что вы можете ожидать, что он скоро уйдет. Я использую его в приложении, и я не вижу причин для обновления решения Apple в обозримом будущем. – DarkDust
В приложении я работаю, время и пространство имеют решающее значение, поэтому я думаю, что мне придется придерживаться Protobuf. Знаете ли вы какие-либо тесты или тесты, которые я могу прочитать? –
Несчастливо только для [реализаций на основе JVM] (http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking). Однако, хотя protobuf работает лучше, разница в производительности удивительно мала. Что касается пространства, это зависит от ваших данных. Возможно, вы просто захотите попробовать прямое сравнение, например, [protobuf-json] (http://code.google.com/p/protobuf-json/) – ovenror
Я согласен с этим, особенно если вы рассматриваете прозрачный gzip -encoding, когда вы используете поддерживаемые http-серверы. JSON - так много текстовых форматов - отлично сжимается. – DrMickeyLauer