Преобразование данных древовидной структуры в XML - проблемы производительности - PullRequest
2 голосов
/ 14 апреля 2009

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

Так что я думаю о сохранении этих древовидных данных в XML-файлах. Причина, по которой я хочу это, потому что

  1. XML имеет встроенную библиотеку для фильтрации и обработки данных
  2. Манипуляции с XML хорошо поддерживаются сообществом, в то время как теперь я должен поддерживать свои собственные манипуляции со структурой данных

Учитывая поддержку .Net для XML, мне интересно, быстрее ли (с точки зрения скорости загрузки) запрашивать данные из XML, а не запрашивать данные из двоичного файла? Есть ли преимущество для меня, чтобы сделать переключатель? Я почти уверен, что с точки зрения программирования, XML опережает мою собственную древовидную структуру данных, но как насчет скорости загрузки?

Ответы [ 3 ]

1 голос
/ 14 апреля 2009

Практическое правило: XML не будет самым маленьким или быстрым способом управления вашими данными.

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

0 голосов
/ 14 апреля 2009

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

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

0 голосов
/ 14 апреля 2009

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

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

Если вам нужно преобразовать данные вашего дерева (для отображения и т. Д.), XML отлично подходит - с помощью XSL-преобразований вы можете создавать практически любые XML, HTML или текстовые представления ваших данных с небольшим программированием (и, следовательно, также тестирование и отладка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...