Thông báo: Các k? thu?t đ? c?i thi?n hi?u su?t c?a XSL Transformations

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 815124 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

TÓM T?T

Bài này li?t kê m?t s? k? thu?t đ? c?i thi?n các hi?u su?t c?a bi?n đ?i Extensible Stylesheet ngôn ng? (XSL). XSL là m?t ngôn ng? ch?c năng. XSL h? tr? các tính năng c?a ngôn ng? ph? bi?n. Cho Ví d?, XSL không h? tr? giá tr? tr? l?i, hay globals. XSL không ph?i là m?t hư?ng đ?i tư?ng ngôn ng?, và đang đư?c mô-đun chi phí x? l? chu k?. Có không có g? l?i s?n cho XSL, do đó, vi?c g? l?i s? tr? thành khó khăn.

THÔNG TIN THÊM

Hi?u su?t c?a m?t phép bi?n đ?i XSL ph? thu?c vào các k?ch b?n mà b?n s? d?ng. Các k? thu?t đư?c li?t kê trong bài vi?t này là nguyên t?c chung. H?y ch?c ch?n b?n đo lư?ng các k?t qu? c?a m?i đi?u ch?nh. Ch? th? nghi?m có th? ch?ng minh cho dù m?t k? thu?t c? th? c?i thi?n hi?u su?t ho?c không. B?n có th? s? d?ng msxsl.exe d?ng l?nh ti?n ích đ? th? nghi?m, và th?c hi?n d?ng l?nh XSL transformations b?ng cách s? d?ng b? vi x? l? Microsoft XSL. Các msxsl.exe ti?n ích invokes các Microsoft XML Parser 4.0 (msxml4.dll) đ? th?c hi?n s? chuy?n đ?i. B?n có th? t?i v? ti?n ích này t? MSDN sau Trang web:
http://www.Microsoft.com/downloads/details.aspx?FamilyID = 2fb55371-c94e-4373-b0e9-db4816552e41 & DisplayLang = en

K? thu?t đ? c?i thi?n hi?u su?t

  • Xác đ?nh đư?ng d?n m? ph? bi?n nh?t đ? render các trang c?a b?n, và sau đó t?i ưu hóa các đư?ng d?n. T?i ưu hóa các ph?n cao s? d?ng l?i c?a XSL.
  • Thay vào đó b?ng cách s? d?ng sub-elements, s? d?ng attributes b?t c? nơi nào nh?t có th?. S? d?ng thu?c tính thay v? các y?u t? c?i thi?n hi?u su?t. Khi th?c hi?n tr?n đ?u XPath, thu?c tính là nhanh hơn b?i v? h? có l?ng l?o đánh máy. Đi?u này làm cho xác nh?n c?a gi?n đ? d? dàng hơn.
  • S? d?ng đư?ng d?n r? ràng hơn thay v? "/ /" b?t c? nơi nào có th?. Khi d? li?u XML là l?n, "/ /" đ? quy t?m ki?m ch?t là r?t t?n kém. C? th? XPath expression th?c hi?n nhanh hơn.
  • Khi b?n so kh?p v?i các giá tr? thu?c tính, s? d?ng s? đ?m thu?c tính. S? d?ng nhi?u thu?c tính tên là bit, và thi?t l?p giá tr? c?a h? đ? s? th?t ho?c sai. Ví dụ:
    <element_name attr1="1" attr2="1" attr3="0">
  • Không s? d?ng các t?p l?nh. B?ng cách s? d?ng k?ch b?n h? th? hi?u su?t.
  • So sánh tr?c ti?p theo tên đ? c?i thi?n hi?u su?t. Cho Ví d?, thay v? c?a vi?c s? d?ng các m? sau đây:
    ./info[type='title']
    s? d?ng m? sau đây:
    ./title
    Khi b?n so sánh các giá tr?, thay v? b?ng cách s? d?ng tên như sau:
    Select="*[name()='sample']"
    s? d?ng m? sau đây:
    Select="sample"
    Do không gian tên x? l? trong XPath, đây là không chính xác tương đương.
  • T?t c? các phiên b?n c?a MSXML, phiên b?n 3.0 và sau này, nhanh hơn v?i b? l?c ch? s? r? ràng. C?i ti?n hi?u su?t ph? thu?c vào các v? trí c?a các ph?n t? trong danh sách tr? em c?a cha m?. Thay v? c?a vi?c s? d?ng các sau:
    /child_element
    s? d?ng sau đây:
    /child_element[1]
  • S? d?ng các tham s? thay v? đánh giá các truy v?n m?i th?i gian.
  • XSL Transformations cho phép nhi?u tùy ch?n, tuy nhiên, t?t c? chúng có th? không th?c hi?n đ?y đ?. Ví d?, thay v? c?a vi?c s? d?ng sau đây chuy?n đ?i:
    <xsl:output method="html"/>
    s? d?ng chuy?n đ?i sau đây:
    <xsl:output method="html" indent="no" />
    Đi?u này c?i thi?n hi?u su?t v? th?t l? cung c?p r?t nhi?u không mong mu?n tr?ng không gian trong đ?u ra. Theo m?c đ?nh, giá tr? cho th?t l? thu?c tính là .
  • Inline m?u v?i Đ?i v?i m?i ho?c ch? đ? thu?c tính khi b?n có ch?c ch?n đó c?a b?n áp d?ng m?u tr?n đ?u chính xác m?t m?u. Ví dụ:
    <xsl:apply-templates select="//xa:Axes/xa:Axis[@name='Axis1']" />
    <xsl:template match="//xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple">
    Cho m?i nút mà phù h?p v?i nh?ng đi?u sau đây:
    "//xa:Axes/xa:Axis[@name='Axis1']"
    bi?u th?c sau đây:
    "//xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple"
    đư?c đánh giá trên t?t c? các m?u khác v?i cùng m?t ch? đ?. B? vi x? l? b?t đ?u đ? ch?y m?c đ?nh m?u. Đi?u này sao chép t?t c? các nút văn b?n, và các cu?c g?i sau đây:
    <xsl:apply-templates>
    Đ?i v?i t?t c? các y?u t?. V? v?y, cho t?t c? tr? em c?a b?n g?c nodeset, bi?u hi?n tr?n đ?u có th? đư?c đánh giá. Phù h?p v?i các bi?u hi?n không ph?i là m?t công vi?c đơn gi?n. Đ? c?i thi?n hi?u su?t, vi?t l?i m? như sau:
    <xsl:apply-templates select="//xa:Axes/xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple" mode="Axis1"/>
    <xsl:template match="*" mode="Axis1">
  • S? d?ng ít hơn m?u. Đi?u này đư?c áp d?ng khi b?n ch?y các cùng m?t m?u nhi?u hơn m?t th?i gian. Có m?t s? c?i ti?n hi?u su?t v?i ch?t ch? Đ?i v?i m?i v?ng l?p đ? t?m ki?m m?t m?u khi s? các m?u ít hơn.
  • Gi?m b?t vi?c s? d?ng XSL: ch?n / xsl:when / xsl: N?u không. Hi?u su?t đư?c th?c hi?n khi ph?n l?n các l?a ch?n mùa thu thông qua các N?u không m?nh đ?. V? v?y, phù h?p v?i Khi, và c? g?ng tránh s? d?ng N?u không khi b?n bi?t r?ng m?t giá tr? c? th? t?n t?i.
  • XSL:variables r?t năng đ?ng giá tr?. Các bi?n này không ph?i là trong b? nh? cache, và ch?y m?i khi h? đư?c tham chi?u trong XSL. R? ràng lo?i đúc c?a xsl:variable c?i thi?n hi?u su?t. B?n có th? làm lo?i đúc b?ng String()boolean() ch?c năng. Ví dụ:
    <xsl:variable name="_attr" select="string( /node/child[ @attr ] )">
  • MSXML Vs. System.xml
    • B? phân tích MSXML là khác nhau t? XmlReaderXmlWriter.
    • MSXML t?i d? li?u XML thành m?t mô h?nh đ?i tư?ng tài li?u (DOM). T? này cây DOM, d? li?u có th? d? dàng đư?c lái qua XPath, chuy?n qua XSL, ho?c ch?nh s?a và lưu l?i. Đi?u này cho phép d? dàng hơn phát tri?n và kh? năng m?nh hơn t?i chi phí c?a vi?c s? d?ng b? nh? và t?c đ?.
    • XmlReaderXmlWriter là tu?n t? đ?c gi? và nhà văn. Các nhà phát tri?n duy tr? nhà nư?c b?ng tay khi đ?c và vi?t d? li?u XML. Đi?u này cho phép b? nh? t?i thi?u vi?c s? d?ng và, do đó, c?i thi?n hi?u su?t.
    • B? phân tích MSXML c?ng h? tr? SAX (Simple API cho XML). SAX là tu?n t?. Các.NET framework c?ng h? tr? DOM b?ng cách s? d?ng các XmlDocument l?p h?c.
    • S? l?a ch?n t?t nh?t ph? thu?c vào s? d?ng c?a.NET khuôn kh? và nhi?m v? mà b?n th?c hi?n v?i XML.

  • K? thu?t này là liên quan đ?n hi?u su?t v?i cơ s? d? li?u. MSXML và System.Xml hi?u su?t có th? đư?c c?i thi?n trong pre-joining vi?c tra c?u các l?nh v?c như th? hi?n trong đo?n m? sau:
    <?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>
    B?n có th? tránh quét b?ng cách tuyên b? @ ch?a khóa c?a lo?i h?nh c?a b?n.
    desc = doc.getNodeFromID("AMC_Labels_3082")

THAM KH?O

Đ? bi?t thêm chi ti?t, h?y truy c?p Microsoft sau đây Các trang Web c?a nhà phát tri?n m?ng (MSDN):
XSLT Developer Guide
http://msdn2.Microsoft.com/en-US/Library/ms759204.aspx
Nâng cao XSL
http://msdn2.Microsoft.com/en-US/Library/aa468550.aspx
Đ? thêm thông tin v? hi?u su?t c?a XSLT, Nh?p vào s? bài vi?t sau đ? xem các bài vi?t trong Microsoft Ki?n th?c cơ b?n:
325689Thông báo: Hi?u su?t c?a XSLT Bi?n đ?i trong các.NET Framework
331026 Hi?n cho tôi như th? nào: Hi?u su?t đi?u ch?nh c?a tôi Xslt Stylesheet in.NET b?ng cách s? d?ng System.Xml

Thu?c tính

ID c?a bài: 815124 - L?n xem xét sau cùng: 28 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft .NET Framework 1.0
  • Microsoft .NET Framework 1.1
T? khóa: 
kbperformance kbxml kbinfo kbmt KB815124 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:815124

Cung cấp Phản hồi

 

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