2012-01-13 1 views

ответ

7

Protobuf более эффективен по времени и пространству, JSON, вероятно, более эффективен с точки зрения нервов. Пока нет причин для первых двух (например, из-за того, что количество сериализуемых данных невелико, а сериализация не является критичной по времени), я буду придерживаться JSON.

Это также делает отладку более весело :-)

+0

В приложении я работаю, время и пространство имеют решающее значение, поэтому я думаю, что мне придется придерживаться Protobuf. Знаете ли вы какие-либо тесты или тесты, которые я могу прочитать? –

+0

Несчастливо только для [реализаций на основе JVM] (http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking). Однако, хотя protobuf работает лучше, разница в производительности удивительно мала. Что касается пространства, это зависит от ваших данных. Возможно, вы просто захотите попробовать прямое сравнение, например, [protobuf-json] (http://code.google.com/p/protobuf-json/) – ovenror

+0

Я согласен с этим, особенно если вы рассматриваете прозрачный gzip -encoding, когда вы используете поддерживаемые http-серверы. JSON - так много текстовых форматов - отлично сжимается. – DrMickeyLauer

2

Я не знаю Protobuf, но JSONKit - очень хороший выбор на iOS. См. JSON vs. PLIST, the Ultimate Showdown для сравнения производительности. JSONKit широко используется и активно развивается, что делает его надежным выбором.

+0

Спасибо вам ответить, я буду видеть JSON против PLIST ссылки, но я действительно заинтересован в Protobuf против JSON. –

+0

Что касается этого сайта, обратите внимание, что структура JSON от Apple является общедоступной с iOS 5 по сравнению с NSJSONSerialization. Ожидайте от сторонних решений отказаться. – Tommy

+1

@ Tommy: Поскольку JSONKit работает быстрее, и многие приложения должны поддерживать iOS <5, я не думаю, что вы можете ожидать, что он скоро уйдет. Я использую его в приложении, и я не вижу причин для обновления решения Apple в обозримом будущем. – DarkDust