LINQ to XML, используя в качестве простого уровня абстракции данных? - PullRequest
2 голосов
/ 17 января 2011

Справочная информация для понимания вопроса

В настоящее время я разрабатываю простой, легкий (зависящий от приложения) API на основе сообщений в C # 4.0.Большинство сообщений покидают стек .NET / Silverlight, поэтому они сериализуются в виде потока XML.Некоторые сообщения также отправляются / принимаются локальным компонентам, поэтому для сериализации нет оснований.

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

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

Вопрос

Мой вопросбыло бы: является ли linq-to-xml достаточно хорошим с точки зрения потребления памяти / производительности, поэтому нет необходимости в отдельном уровне абстракции данных?Насколько я понимаю, linq-to-xml отображает только контент, если контент записывается в поток.

Спасибо за отзыв.

1 Ответ

1 голос
/ 17 января 2011

LINQ to XML выполняет ленивый анализ вашего документа, но создает полный граф объектов в памяти и создает много объектов в памяти.Он имеет отличный API, но, конечно, не легкий.Пожалуйста, измерьте производительность, чтобы увидеть, соответствует ли производительность LINQ to XML требованиям к производительности вашего приложения.

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