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

ВНИМАНИЕ! Данная статья переведена с использованием программного обеспечения Майкрософт для машинного перевода и, возможно, отредактирована посредством технологии Community Translation Framework (CTF). Корпорация Майкрософт предлагает вам статьи, обработанные средствами машинного перевода, отредактированные членами сообщества Майкрософт и переведенные профессиональными переводчиками, чтобы вы могли ознакомиться со всеми статьями нашей базы знаний на нескольких языках. Статьи, переведенные с использованием средств машинного перевода и отредактированные сообществом, могут содержать смысловое, синтаксические и (или) грамматические ошибки. Корпорация Майкрософт не несет ответственности за любые неточности, ошибки или ущерб, вызванные неправильным переводом контента или его использованием нашими клиентами. Подробнее об CTF можно узнать по адресу http://support.microsoft.com/gp/machine-translation-corrections/ru.

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

back to the top

Медленно выполнения преобразования 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
back to the top

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

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

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

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

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.

back to the top

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
back to the top

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.

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

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 325689 — последний просмотр: 01/11/2015 04:45:21 — редакция: 3.0

  • kbnosurvey kbarchive kbinfo kbxml kbmt KB325689 KbMtru
Отзывы и предложения