Лучший подход к хранению для небольшого количества 99% статических данных, необходимых при запуске - PullRequest
0 голосов
/ 16 мая 2009

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

Сейчас я сериализовал данные (общий список) в файл XML и десериализовал их при загрузке по мере необходимости.

У меня вопрос, должен ли я использовать XmlSerializer или BinaryFormatter? Меня не беспокоит размер файла, но скорость сериализации.

Ответы [ 5 ]

2 голосов
/ 16 мая 2009

Интересные ответы. Я собирался предложить сохранить данные в виде кода и встроить их в сборку, на которую будут ссылаться остальные части приложения.

2 голосов
/ 16 мая 2009

BinaryFormatter быстрее, чем XmlSerializer. Он имеет дело с гораздо менее раздутым форматом без проблем разбора строк

1 голос
/ 16 мая 2009

«Мы должны забыть о малой эффективности, скажем, в 97% случаев: преждевременная оптимизация - корень всего зла». - Дон Кнут

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

0 голосов
/ 16 мая 2009

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

Если данные могут изменяться с какой-либо регулярностью или являются бизнес-логикой, игнорируйте этот ответ. Не будь предупрежден!

0 голосов
/ 16 мая 2009

XML медленный, слишком большой синтаксис для проверки. Можете ли вы обойтись с разделителем табуляции или CSV-файл?

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