성능 팁
이 팁에 따라 XPath, XQuery 및 XSLT 사용 시 성능을 개선합니다.
언어 | 팁 |
---|---|
XPath | // 사용은 비용이 드는 조작입니다. 경로를 보다 명시적으로(a//c가 아닌 a/b/c) 작성하면 성능이 개선될 수 있습니다. 경로가 큰 문서의 루트 가까이 또는 루트에서 시작되는 경우 특히 중요합니다. |
last() 함수는 전체적으로 시퀀스를 평가하여 항목을 계산하기 때문에 비용이 드는 조작입니다. | |
[3]과 같이 상수 값이 있는 위치 술어는 계산되거나 변수에서 검색된 값이 있는 술어보다 보통 효율적입니다. | |
XQuery | 조회가 하나 이상의 스키마를 가져오고 동일한 조회가 두 번 이상 실행되면 XQueryExecutable 인스턴스에서 registerImportedSchemas 메소드 호출을 고려하십시오. registerImportedSchemas가 호출되지 않으면 실행 메소드 중 하나가 호출될 때마다 가져온 스키마가 로드됩니다. 기본적으로, 가져온 스키마가 결과 트리의 유효성을 검증하는 데만 사용될 수 있습니다. 하지만 이 메소드를 호출하면 XFactory로 스키마를 등록하는 것과 동일한 효과가 있으며, 입력 문서의 유효성을 검증하는 데 사용됨을 의미합니다. |
XSLT | 매개변수는 변수보다 액세스하기에 더 느립니다. 외부적으로 매개변수의 값을 지원하지 않아도 되는 경우 변수를 사용합니다. |
xsl:key 요소 및 key() 함수 사용은 노드 세트를 검색하는 효율적인 방법이 될 수 있습니다. | |
패턴 일치 및 apply-templates 디스패치는 보통 xsl:if 또는 xsl:when 명령문보다 빠릅니다. | |
일치 패턴의 위치 술어는 보통 비용이 많이 듭니다. | |
일반적으로 "address"와 같은 단순한 일치 패턴은 "/purchaseorder/shipping/customer/postal/address"와 같은 복잡한 패턴을 처리하는 것보다 비용이 조금 듭니다. 문서의 구조 및 사용자 스타일시트의 작동에 대한 지식을 활용하여 불필요하게 지정하지 않도록 하십시오. | |
일부 데이터 모델의 경우, xsl:skip-space 조작은 문서 로드 중이 아닌 문서 이동 중 적용되어야 합니다. 이렇게 하면 일부 실행 시간 오버헤드를 추가할 수 있습니다. | |
스타일시트가 하나 이상의 스키마를 가져오고 동일한 스타일시트가 두 번 이상 실행되면 XSLTExecutable 인스턴스에서 registerImportedSchemas 호출을 고려하십시오. registerImportedSchemas가 호출되지 않으면 실행 메소드 중 하나가 호출될 때마다 가져온 스키마가 로드됩니다. 기본적으로, 가져온 스키마가 결과 트리의 유효성을 검증하는 데만 사용될 수 있습니다. 하지만 이 메소드를 호출하면 XFactory로 스키마를 등록하는 것과 동일한 효과가 있으며, 입력 문서의 유효성을 검증하는 데 사용됨을 의미합니다. | |
XPath, XQuery 및 XSLT | 디코딩 및 인코딩은 비용이 많이 듭니다. 일반적으로, UTF-8 및 UTF-16을 다른 인코딩보다 빨리 읽고 쓸 수 있습니다. |