2010-06-20 2 views
6

Я создаю приложение для iPhone, которое будет отправлять и получать большие объемы данных на сервер и с него. Я использую JSon для получения данных. Мне было интересно, можно ли использовать какое-то сжатие полученных данных, чтобы немного ускорить процесс. Если да, то какое сжатие лучше всего работает с JSon, и где я могу найти дополнительную информацию об этом?iPhone, JSon и сжатие

Thanks,

ответ

2

опаздывает участник, но на всякий случай кто ищет. Используйте ASIHTTPRequest, который имеет встроенные опоры для сжатия gzip. это позволит сэкономить накладные расходы на обработку декомпрессии. gzip at ASIHTTPRequest

0

IPhone поддерживает ZLib. Но я думаю, что его лучшая идея, чтобы ваш сервер поддерживал сжатие, поскольку NSURLRequest принимает gzip-кодировку из ответов сервера. Поскольку JSON является сериализуемым, это может быть лучшим вариантом для вас.

С помощью zlib вы можете использовать сжатие со стороны клиента.

0

На самом деле JSON не заботится о том, какое сжатие вы используете для своих данных, поэтому вы можете выбрать схему сжатия, которая наилучшим образом соответствует данным и обеспечивает лучший размер/производительность.

Однако JSON ожидает, что все данные будут в формате UTF-8, поэтому вам необходимо кодировать сжатые данные, например. используя кодировку base64.

0

Есть по крайней мере, два алгоритма, используемые для JSON compression (CJson & HPack).

Если клиентское устройство поддерживает gzip, тогда нет пользы от использования сжатия JSON. При использовании обоих: сжатие gzip & json compression, улучшение незначительно. Использование сжатия JSON имеет смысл, когда gzip отключен или не поддерживается.

0

Я думаю, что алгоритм сжатия HPack (также известный как JSONH) с сжатием gzip является хорошим вариантом, если вы слишком обеспокоены размером данных. я попытался сжатия простые данные JSON с массив объектов, я использовал два метода сжатия -

  1. GZIP
  2. JSONH + GZIP

Результат JSONH + Gzip было около 7% больше сжатый, чем результат простого использования gzip. В моем случае это было значительное число, и я продолжил смешанную реализацию.

Смежные вопросы