2008-10-07 3 views
4

Использование groovy, вы ожидаете лучшей производительности с точки зрения скорости и объема памяти, чтобы читать и запрашивать JSON vs XML?Groovy parsing JSON vs XML

ответ

5

JSON меньше и проще, чем XML. Готов поспорить, что JSON быстрее разбирается.

YAML будет быстрее.

+0

Я думал, что YAML был надмножеством JSON ... так что, если есть меньше, чтобы разобрать с JSON, не так ли? – 2008-10-07 20:01:22

+0

См. Http://yaml.org/ YAML отличается от JSON. Более выразительно и немного проще разбирать этот JSON. – 2008-10-07 20:12:36

1

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

2

Если бы скорость была действительно проблемой, я предпочел бы использовать библиотеку java для разбора всего, что захочу, чем полагаться на реализацию Groovy.

2

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

2

Я считаю, что разница в производительности будет не поддающейся обнаружению никому, кроме профайлера, если схема и данные одинаковы. Тем не менее, вы заметили большую разницу, если вы использовали неправильный синтаксический анализатор XML. Другими словами, реализация SAX может легко соответствовать или, возможно, превосходить разбор JSON. Существует множество внешних факторов, которые могут быть полезны. Если вы хотите, чтобы настоящая история бросала как JSON, так и SAX-парсер в те же данные/схему без дополнительной логики. Большая экономия исходит из логики, используемой для интерпретации разбора. Может быть проще использовать DOM или парсинг pull в зависимости от ваших требований, в то время как SAx вызовет слишком сложное неэффективное решение. Также есть заметные различия между парсерами. Добавьте переменную размера файла, и вы быстро потеряете объем того, что вы на самом деле измеряете. Другой пример: если ваш XML содержит описания DTD и ссылки на сущности, которые должны быть разрешены по проводу, а ваше сетевое соединение имеет высокую задержку, тогда вы можете увидеть улучшения в JSON. Все это сводится к тому, что вы на самом деле пытаетесь сделать.