XSL 변환 성능 향상을 위한 기술 정보:

기술 자료 번역 기술 자료 번역
기술 자료: 815124 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

요약

이 문서에서는 확장 가능한 스타일시트 언어 (XSL) 변환 성능을 향상시키기 위해 몇 가지 방법을 나열합니다. XSL 기능 언어입니다. XSL 공용 언어 기능을 지원하지 않습니다. 예를 들어, XSL 반환 값 또는 전역 지원하지 않습니다. XSL 개체 지향 언어 및 프로세서 주기 비용을 모듈식 중인. XSL에 대해 사용할 수 없는 디버그 있을, 따라서 디버깅이 어려워집니다.

추가 정보

XSL 변환의 성능을 사용 시나리오에 따라 다릅니다. 이 문서에 나와 있는 기술을 일반적인 지침입니다. 각 조정 결과를 측정하는 확인하십시오. 테스트 또는 특정 기술의 성능을 향상시키는 여부를 입증할 수 있습니다. 테스트 및 Microsoft XSL 프로세서를 사용하여 명령줄 XSL 변환을 수행하도록 msxsl.exe 명령줄 유틸리티를 사용할 수 있습니다. 해당 Microsoft XML Parser를 변환을 수행하려면 4.0 (msxml4.dll) msxsl.exe 유틸리티를 호출합니다. 이 유틸리티는 다음 MSDN에서 다운로드할 수 사이트:
http://www.microsoft.com/downloads/details.aspx?FamilyID=2fb55371-c94e-4373-b0e9-db4816552e41&DisplayLang=en

성능 향상을 위한 기법

  • 페이지를 렌더링하는 데 가장 일반적인 코드 경로를 식별하고 이러한 경로를 최적화할 수 있습니다. XSL 고도로 다시 부분을 최적화하십시오.
  • 하위 요소 사용하는 대신 가능하면 특성을 사용하십시오. 특성 대신 요소를 사용하여 성능을 향상시킵니다. 느슨하게 입력했기 때문에 XPath 일치하는 수행할 때 특성을 빠릅니다. 스키마 유효성 검사를 쉬워집니다.
  • 대신 더 명시적인 경로를 "//" 가능하면. XML 데이터를 큽니다 때 "//" 재귀 decedent 검색 매우 많이 듭니다. 특정 XPath 식을 빠르게 구현합니다.
  • 특성 값을 비교하여 일치하는 경우 열거자를 특성을 사용하십시오. 비트 같이 여러 특성 이름을 사용하고 해당 값을 true 또는 false 로 설정하십시오. 예를 들어,:
    <element_name attr1="1" attr2="1" attr3="0">
  • 스크립트를 사용하지 마십시오. 스크립트를 사용하여 성능을 다운그레이드한.
  • 성능을 향상시키기 위해 직접 이름으로 비교하십시오. 다음 코드를 사용하여 대신 예를 들어,:
    ./info[type='title']
    다음 코드를 사용하여:
    ./title
    다음과 같은 이름을 사용하는 대신 값을 비교할 때:
    Select="*[name()='sample']"
    다음 코드를 사용하여:
    Select="sample"
    있는 XPath 처리 네임스페이스 인해 이러한 정확히 동일합니다.
  • 모든 버전의 MSXML 버전 3.0 이상에서 명시적 인덱스 필터를 사용하여 속도가 빠릅니다. 성능 개선 요소 위치를 부모 자식 목록에 따라 달라집니다. 다음 사용하는 대신:
    /child_element
    다음 사용하십시오:
    /child_element[1]
  • 매개 변수를 쿼리를 때마다 평가 대신 사용하십시오.
  • 그러나 XSL 변환 옵션을 여러 개 수, 모두 제대로 수행되지 않을 수 있습니다. 다음 변환을 사용하는 대신 예:
    <xsl:output method="html"/>
    다음 변환을 사용하여:
    <xsl:output method="html" indent="no" />
    들여쓰기 출력에서 원하지 않는 공백을 많이 제공하므로 성능이 향상됩니다. 기본적으로 특성 들여쓰기 값입니다.
  • 인라인 템플릿 사용하여 for-each 또는 정확히 하나의 서식 파일을 적용할 템플릿 일치하는지 확실히 때 mode 특성 을. 예를 들어,:
    <xsl:apply-templates select="//xa:Axes/xa:Axis[@name='Axis1']" />
    <xsl:template match="//xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple">
    다음 일치하는 각 노드에 대한:
    "//xa:Axes/xa:Axis[@name='Axis1']"
    다음 식을:
    "//xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple"
    동일한 모드 사용하여 모든 서식 파일에서는 평가됩니다. 기본 서식 파일을 실행하려면 프로세서가 시작합니다. 이 모든 텍스트 노드를 복사하여 다음 호출하는:
    <xsl:apply-templates>
    모든 요소에 대한. 따라서 원래 nodeset 모든 자식은 일치하는 식이 계산됩니다. 식에 일치하는 간단한 작업이 아닙니다. 성능을 향상시킬 수 있는 코드를 다음과 같이 다시:
    <xsl:apply-templates select="//xa:Axes/xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple" mode="Axis1"/>
    <xsl:template match="*" mode="Axis1">
  • 더 적은 서식 파일을 사용하십시오. 같은 서식 파일을 두 번 이상 실행할 때 이 사용할 수 있습니다. 엄격한 성능을 일부 향상됩니다 for-each 템플릿 수가 적은 경우 서식 파일을 검색하려면 루프.
  • 사용을 줄이는 xsl: 선택/xsl:when/xsl: 그렇지 않은. 성능 영향을 때 선택 대부분의 그렇지 않으면 절을 통해 속합니다. 따라서 함께 일치해야 및 특정 값이 있는지 알고 있으면 그렇지 않으면 사용하지 않는 것이 좋습니다.
  • 동적 값은 xsl:variables가 있습니다. 이러한 변수는 캐시에 있지 않으며 있는 XSL 자신이 참조될 때마다 실행합니다. 명시적 형식 중 xsl:variable 캐스팅하는 성능이 향상됩니다. 할 수 string()boolean() 함수 사용하여 캐스팅을 입력합니다. 예를 들어,:
    <xsl:variable name="_attr" select="string( /node/child[ @attr ] )">
  • MSXML Vs 입니다. System.Xml
    • MSXML 파서의 XmlReaderXmlWriter 다릅니다.
    • XML 데이터를 문서로 문서 개체 모델 MSXML 로드합니다 (DOM). 이 DOM 트리에서 데이터는 쉽게 XPath 통해 탐색하기, XSL 통해 변환된 또는 편집 및 수 다시 저장됩니다. 더 쉽게 개발 및 나빠지는 대신 메모리 사용량 및 속도에 더 강력한 기능이 있습니다.
    • XmlReaderXmlWriter 순차 판독기 및 작성기 표시할 수 있습니다. 개발자가 직접 읽고 XML 데이터를 쓸 때 상태를 유지합니다. 이 최소 메모리 사용을 수 있으며, 따라서 성능이 향상됩니다.
    • 또한 MSXML 파서의 SAX를 XML 간단한 API를 지원합니다. SAX 순차 것입니다. 또한 .NET Framework XmlDocument 클래스를 사용하여 DOM을 지원합니다.
    • .NET 사용률에 대한 최선의 선택이 달라집니다 프레임워크 및 XML을 사용하여 수행할 작업에 따라.
  • 이 방법은 데이터베이스 성능이 관련이 있습니다. 다음 코드와 같이 조회 필드를 pre-joining MSXML 및 System.Xml 성능을 향상시킬 수 있습니다:
    <?xml version="1.0" encoding="UTF-8"?>
    <AllLocalDescriptor xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <Descriptor key="AMC_Labels_" ID="AMC" Name="-2000" TypeName="Labels" LCID="">
      AMC
    </Descriptor>
    <Descriptor key="AMC_Labels_3082" ID="AMC" Name="-2000" TypeName="Labels" LCID="3082">
      AMC
    </Descriptor>
    @ 키 형식 ID 선언하여 스캔 피할 수
    desc = doc.getNodeFromID("AMC_Labels_3082")

참조

자세한 내용은 다음 Microsoft 개발자 네트워크 (MSDN) 웹 사이트를 방문하십시오.
XSLT 개발자 가이드
http://msdn2.microsoft.com/en-us/library/ms759204.aspx
향상시킬 XSL
http://msdn2.microsoft.com/en-us/library/aa468550.aspx
XSLT 성능에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
325689XSLT 성능 정보: .NET Framework의 변환
331026성능 내 Xslt 스타일시트 System.Xml 사용하여 .NET 에서 조정하는 방법 정보 표시:

속성

기술 자료: 815124 - 마지막 검토: 2007년 11월 2일 금요일 - 수정: 2.4
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft .NET Framework Class Libraries 1.1
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
키워드:?
kbmt kbperformance kbxml kbinfo KB815124 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

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