Вопросы производительности JSON и XML

Я использую webservice, который предоставляет большой набор результатов в формате XML или JSON. Какой формат будет быстрее или лучше (на основе производительности)? Также, какой язык следует использовать для анализа XML / JSON? Должен ли я использовать PHP или JavaScript?

«PHP или JavaScript» звучит как странный выбор: PHP обычно используется как серверный язык, тогда как JavaScript обычно используется как язык на стороне клиента.

Какова ваша ситуация? Что заставляет вас предлагать эти два языка в частности? Если бы вы могли дать больше информации о том, что вы пытаетесь сделать, это очень поможет. (Мы не знаем, разрабатываете ли вы веб-приложение, средство пакетной обработки, графическое приложение и т. Д.)

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

Как всегда, лучший способ узнать – проверить конкретный веб-сервис с некоторыми реалистичными данными. Общие положения не являются хорошей основой для принятия решений.

оба имеют свои преимущества:

JSON

  • простой в обращении: $dataStructure = JSON_decode($serializedString); , сделанный.

XML

  • частичная обработка данных: если ваш результирующий набор слишком велик, чтобы обрабатываться (анализироваться) сразу, это может быть путь. note: SimpleXML проще работать с xml lib, но одновременно анализирует весь xml-файл, поэтому в этом случае нет никакой пользы от JSON.

вопрос о том, какой язык для обработки вашего результирующего набора немного нечувствителен. javascript – клиентская сторона *, php – серверная. поэтому, это зависит от того, что вы хотите сделать с набором результатов.

вы можете передать результат непосредственно в браузер / js, не делая ничего на стороне сервера, и пусть клиент выполняет фильтрацию и рендеринг. это может иметь смысл в определенных ситуациях, но обычно это не то, что вы хотите.

мой совет: если возможно, используйте JSON.

ad *: вы можете использовать javascript на стороне сервера ( rhino , v8cgi , …), но это не то, что вы имеете в виду.

Я пошел бы за JSON, вы не платите «угловой кронштейн». Выбор между PHP и Javascript связан с объемом обработки, требуемой для данных (я делаю прыжок здесь).

Много обработки, используйте PHP, так что это серверная сторона. Небольшая обработка использует Javascript для более отзывчивой страницы (загрузка данных через AJAX).

Хотя аспекты производительности действительно сильно различаются между комбинациями языка и инструмента, в конце xml и json имеют тенденцию иметь схожие характеристики при использовании лучших инструментов платформы. То есть, вы не найдете более одного раза в два раза быстрее или больше; теоретические пределы аналогичны для текстовых форматов. Оба являются «достаточно хорошими» в этом отношении практически для любого варианта использования.

Поэтому я бы больше сосредоточился на поддержке инструмента, для вашей задачи. Кроме того, выбор формата вряд ли будет самым важным аспектом для рассмотрения.

И, как сказал Джон, сравнение PHP и Javascript действительно звучит странно … яблоки и апельсины или так далее.

Думаю, вам придется самому это измерить. Производительность будет зависеть от:

  1. размер данных
  2. сложность данных
  3. его формат (JSON или XML)

Таким образом, вы можете видеть, что существует ряд переменных.

Использует ли веб-сервис, который вы используете, дольше, чтобы собрать данные в одном формате по сравнению с другим?

Существует большое количество вариантов для разбора JASON и XML, поэтому не ограничивайте себя PHP или Javascript (если у вас есть выбор). И, наконец, если вы запрашиваете у веб-службы, у вас будут накладные расходы на транспортную сеть, настройку подключения и т. Д. Таким образом, любая экономия времени при анализе производительности может быть незначительной. Ваши усилия могут быть лучше потрачены в другом месте.

Я не думаю, что я ответил на ваш вопрос, кроме как дать вам больше о чем подумать!

Одна вещь, которая, возможно, была пропущена, заключается в том, что клиенту JavaScript не нужно разбирать JSON, так что вы получите выигрыш в производительности. Браузер проанализирует XML в DOM и передаст это вашему обратному вызову, тогда вам нужно извлечь из этой DOM необходимую вам информацию. С JSON вы возвращаете объект, и необходимость извлечь из DOM пропала.

Вы должны использовать python, желательно 🙂

Что касается формата, я думаю, что JSON будет немного быстрее, но это зависит от деталей, и эта задача будет в любом случае связана с сетью.

Если вы используете приложение с ajax, тогда вы должны выбрать Javascript для обработки данных на стороне клиента, что уменьшит использование php на сервере, что означает более эффективную серверную часть. вы можете сохранить свой набор результатов в json-файле, а затем вызывать его на стороне клиента с помощью javascript, это будет наилучшим возможным способом, поскольку это не будет потреблять ресурсы на сервере, и данные будут обрабатываться на стороне клиента. здесь я отдаю предпочтение json над xml, потому что xml занимает больше места для хранения, чем json, из-за его стиля тегов, а json похож на массив в javascript, который будет быстрее, чем xml. то же самое на стороне сервера, вы можете легко преобразовать свой json-массив в php-массив (просто обратитесь к функции json_decode в PHP).

Теперь дни json в моде, потому что они просты в использовании и быстрее.

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