ИНФОРМАЦИЯ: Производительность преобразований XSLT в платформе .NET Framework

Переводы статьи Переводы статьи
Код статьи: 325689
Развернуть все | Свернуть все

В этой статье

Аннотация

Данная статья содержит сведения о причины и способы их обхода проблемы производительности, известные проблемы, которые могут возникнуть при использовании процессора .NET Framework XSLT для выполнения XSLT преобразований.

Медленно выполнения преобразования XSLT с XmlDataDocument

Применение преобразования XSLT к XML-представление данных в ADO.NETНабор данныхявляется общим требованием приложения. Microsoft .NET Framework базовые классы вSystem.Xmlпространства имен используются в сочетании с помощью ADO.NETНабор данныхЧтобы реализовать это требование в приложениях .NET.

System.Xml.Xsl.XslTransformявляется базовым классом .NET Framework, который используется для выполнения XSLT преобразований.System.Xml.XmlDataDocument,System.Xml.XmlDocument, иSystem.Xml.XPath.XPathDocument— Это три базовых классов .NET Framework, которые можно использовать для загрузки и предоставляет XML-представление данных в ADO.NETНабор данныхв качестве источника XML при выполнении преобразования XSLT. Из этих трех параметров, с помощьюXmlDataDocumentобъект требует как минимум кода, так как он может быть синхронизирована сНабор данныхобъект при его создании. Тем не менее, снижение производительности является распространенной проблемой при использованииXmlDataDocumentобъект, чтобы применить преобразование XSLT к XML-представление ADO.NETНабор данных. Данное поведение является особенностью в выпуске RTM платформы .NET Framework.

System.Xml.XPath.XPathDocumentвыполняет обработку класса наиболее оптимизированные для XPath и XSLT. Загрузка XML-представлениеНабор данныхданные вXPathDocumentобъект и передатьXPathDocumentобъект в качестве источника XML при выполнении преобразования XSLT для достижения максимальной производительности.Для получения дополнительных сведений об этой проблеме и пример кода, демонстрирующий способы обхода описано выше щелкните следующий номер статьи базы знаний Майкрософт:
318580Проблема: Преобразования XSL с XmlDataDocument может выполнить медленнее, чем XPathDocument

Низкая производительность при модернизации DataSet не вложенных объектов DataRelation

Снижение производительности является распространенной проблемой при попытке преобразования XML-представлениеНабор данныхкоторый имеет несколько связанных сОбъект DataTableобъекты и свойстваDataRelationобъекты не имеют были вложены в соответствии с иерархической структуры для отображения связи в сериализованный XML.

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

В таких случаях корпорация Майкрософт рекомендует, вложениеDataRelationобъектыНабор данных(то есть значениеВложенныеСвойствоDataRelationКому:True) и написать код в таблице стилей XSLT, естественным сверху вниз иерархической выражения запросов XPath для поиска и преобразования данных.Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
325693Проблема: Медленно производительности при модернизации с DataRelations не вложенный набор данных ADO.NET

100 Percent CPU Utilization or Hang When You Use XmlDocument to Execute XSLT Transformations that Use preceding-sibling

Using anОбъект XmlDocumentobject to supply the source XML to an XSLT transformation that uses thepreceding-siblingXPath location axes causes 100 percent CPU utilization, which causes the computer to stop responding (hang) and also causes a steep drop in the system performance.

This behavior is noticeable when you transform medium to large XML documents or streams. This is currently a known problem in the RTM release of the .NET Framework. Microsoft is working to prevent the 100 percent CPU utilization in the next major release of the .NET Framework. EnhancingОбъект XmlDocumentto match the performance ofXPathDocumentwhen you execute XPath queries and XSLT transformations is not a design goal for future releases of the .NET Framework.

надписьюXPathDocumentclass is the recommended interface in .NET to load XML when an application must execute XPath queries or XSLT transformations on the XML data. If you experience this problem, modify your code to use anXPathDocumentobject to supply the source XML to the XSLT transformation process.

Slow Performance When You Use xsl:key

надписьюxsl:keyXSLT element is frequently used to group XML data or identify unique occurrences of specified element or attribute values in the source XML. XSLT style sheets that use thexsl:keyelement exhibit slow performance when they are used to transform XML data in .NET applications. This is caused by a known problem in the XSLT processor implementation of thexsl:keyelement in the RTM release of the .NET Framework.

A fix to address this problem is currently available.Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
324478Slow XSLT Performance with Managed Parser

Managed Assemblies Generated for Inline Script Blocks Are Not Released Correctly

In the .NET Framework, managed assemblies are generated and loaded implicitly to execute the code that is contained in inline<msxsl:script></msxsl:script>блоки. A known problem in the RTM release of the .NET Framework prevents these assemblies from being correctly unloaded when the transformation process is complete. This anomaly can cause an incremental increase in memory usage, resulting in a drop in system performance, if the affected style sheet is repeatedly loaded to execute XSLT transformations. The unreleased memory is released only when the host process is recycled.Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
316775PRB: Cannot Unload Assemblies That You Create and Load by Using Script in XSLT
To work around this anomaly in ASP.NET applications, load the affected style sheets only one time during the life of the application, cache the style sheets in the ASP.NET cache, and reuse the cached versions for later transformations. In Windows Forms and Console Application projects, you can use globalXslTransformobject instances to load the affected style sheets at application startup and execute later transformations. These workaround methods are not applicable when the XSLT transformation must be executed in a stateless environment (for example, middle-tier Enterprise Services components).

Microsoft recommends that you use XSLT extension objects to implement custom XPath extension functions and avoid the side effects of this anomaly.

Ссылки

Дополнительные сведения см. в следующей статье базы знаний Майкрософт::
313997ИНФОРМАЦИЯ: План для выполнения преобразования XSLT в приложениях .NET

Свойства

Код статьи: 325689 - Последний отзыв: 24 ноября 2010 г. - Revision: 2.0
Ключевые слова: 
kbinfo kbxml kbmt KB325689 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:325689
Заявление об отказе относительно содержимого статьи о продуктах, поддержка которых прекращена
Эта статья содержит сведения о продуктах, поддержка которых корпорацией Майкрософт прекращена. Поэтому она предлагается как есть и обновляться не будет.

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com