Al momento sei offline in attesa che la connessione Internet venga ristabilita

INFORMAZIONI: Tecniche per migliorare le prestazioni di trasformazioni XSL

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 815124
Questo articolo è stato archiviato. L’articolo, quindi, viene offerto “così come è” e non verrà più aggiornato.
Sommario
In questo articolo sono elencate alcune tecniche per migliorare le prestazioni di trasformazioni XSL (Extensible Stylesheet Language). XSL è un linguaggio funzionale. XSL non supporta la funzionalità di common language. Ad esempio, XSL non supporta i valori restituiti o globali. XSL non è un linguaggio orientato a oggetti, e da modulare costi cicli del processore. Non è disponibile per XSL senza debug, pertanto, diventa difficile il debug.
Informazioni
Prestazioni di una trasformazione XSL dipendono dagli scenari che si utilizza. Le tecniche che sono elencate in questo articolo sono fornite indicazioni generali. Assicurarsi che è necessario misurare i risultati di ogni tipo di ottimizzazione. Se una particolare tecnica migliora le prestazioni o non può rivelarsi solo test. È possibile utilizzare l'utilità msxsl.exe della riga di comando per il testing e per eseguire le trasformazioni XSL di riga di comando utilizzando il processore XSL di Microsoft. L'utilità msxsl.exe richiama Microsoft XML Parser 4.0 (msxml4.dll) per eseguire la trasformazione. È possibile scaricare questa utilità dal sito Web MSDN seguente sito:

Tecniche per migliorare le prestazioni

  • Identificare i percorsi più comuni di codice per il rendering delle pagine e quindi ottimizzare tali percorsi. Consente di ottimizzare le sezioni altamente riutilizzare di XSL.
  • Anziché utilizzare sottoelementi, è necessario utilizzare attributi ove possibile. Utilizzando gli attributi invece di elementi migliora le prestazioni. Quando si esegue corrispondenze di XPath, gli attributi sono più veloci poiché vengono digitati. In questo modo la convalida dello schema più semplice.
  • Utilizzare percorsi più espliciti invece di "/ /" ove possibile. Quando i dati XML sono grandi, "/ /" ricerca decedent ricorsiva è molto dispendiosa. Espressione XPath specifica implementa più veloce.
  • Quando corrispondenza con i valori di attributo, è possibile utilizzare gli attributi di enumeratore. Utilizzare più nomi di attributo come bit e impostare i valori true o false . Ad esempio:
    <element_name attr1="1" attr2="1" attr3="0">
  • Non è possibile utilizzare script. Utilizzo di script riduce le prestazioni.
  • Consente di confrontare direttamente per nome, per migliorare le prestazioni. Ad esempio, anziché utilizzare il codice riportato di seguito:
    ./info[type='title']
    utilizzare il codice seguente:
    ./title
    quando si confrontano valori, anziché utilizzare il nome come indicato di seguito:
    Select="*[name()='sample']"
    utilizzare il codice seguente:
    Select="sample"
    causa dello spazio dei nomi in XPath, questi sono non è esattamente equivalenti.
  • Tutte le versioni di MSXML, versione 3.0 e versioni successive, sono più veloci con il filtro indice esplicito. Il miglioramento delle prestazioni varia a seconda della posizione dell'elemento nell'elenco figlio dell'elemento padre. Invece di utilizzare le seguenti operazioni:
    /child_element
    utilizzare la seguente:
    /child_element[1]
  • Consente di utilizzare i parametri invece di valutazione di ogni volta che la query.
  • Trasformazioni XSL consente più opzioni, tuttavia, tutti potrebbe non eseguire in modo adeguato. Ad esempio, anziché utilizzare la seguente trasformazione:
    <xsl:output method="html"/>
    utilizzare la seguente trasformazione:
    <xsl:output method="html" indent="no" />
    questo migliora le prestazioni poiché rientro fornisce numerose indesiderati spazi nell'output. Per impostazione predefinita, il valore per il rientro di attributo è .
  • Il modello Inline con for-each o l' attributo mode quando si è certi che il applicare-modello corrisponde esattamente un modello. Ad esempio:
    <xsl:apply-templates select="//xa:Axes/xa:Axis[@name='Axis1']" /><xsl:template match="//xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple">
    per ogni nodo che corrisponde a quanto segue:
    "//xa:Axes/xa:Axis[@name='Axis1']"
    l'espressione riportata di seguito:
    "//xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple"
    viene valutata su tutti gli altri modelli con la stessa modalità. Processore inizia a eseguire modelli predefiniti. Questa copia di tutti i nodi di testo e chiama le seguenti operazioni:
    <xsl:apply-templates>
    per tutti gli elementi. Di conseguenza, per tutti i figli del set di nodi originale, possibili corrispondenze espressione viene valutata. L'espressione di corrispondenza non è un'attività semplice. Per migliorare le prestazioni, riscrivere il codice nel modo seguente:
    <xsl:apply-templates select="//xa:Axes/xa:Axis[@name='Axis1']/xa:Tuples/xa:Tuple" mode="Axis1"/><xsl:template match="*" mode="Axis1">
  • Utilizzare un minor numero di modelli. Questa opzione è disponibile quando si esegue più volte il modello stesso. È un miglioramento delle prestazioni con una stretta for-each ciclo per cercare un modello quando il numero di modelli è minore.
  • Ridurre l'utilizzo di xsl: scegliere / xsl: when / xsl: in caso contrario . Interessate di prestazioni quando la maggior parte delle selezioni rientrano tramite la clausola in caso contrario . Di conseguenza, quando corrisponde e provare a evitare l'utilizzo in caso contrario , quando si conosce l'esistenza di un determinato valore.
  • xsl:Variables sono valori dinamici. Queste variabili non sono nella cache ed eseguire ogni volta che viene fatto riferimento in XSL. Tipo esplicito il cast di xsl: variable migliora le prestazioni. È possibile eseguire digitare cast con funzioni string() e boolean() . Ad esempio:
    <xsl:variable name="_attr" select="string( /node/child[ @attr ] )">
  • VS MSXML. System.XML
    • Parser MSXML è diverso da XmlReader e XmlWriter .
    • MSXML Carica dati XML in un Document Object Model (DOM). Da questa struttura DOM, dati possono facilmente essere passati attraverso XPath, trasformati tramite XSL, o modificati e salvati nuovamente. In questo modo sviluppo più semplice e più potenti funzionalità nel spese di utilizzo della memoria e velocità.
    • XmlReader e XmlWriter sono sequenziali lettori e scrittori. Lo sviluppatore gestisce lo stato manualmente durante le lettura e scrittura di dati XML. In questo modo l'utilizzo di memoria minima e, di conseguenza, migliora le prestazioni.
    • Il parser MSXML supporta inoltre SAX (Simple API for XML). SAX è sequenziale. .NET framework supporta inoltre il DOM, utilizzando la classe XmlDocument .
    • La scelta migliore dipende dall'utilizzo di .NET framework e sull'attività che è possibile eseguire con XML.
  • Questa tecnica riguarda le prestazioni con database. È possibile migliorare le prestazioni di MSXML e System.XML in pre-joining i campi di ricerca come illustrato nel codice riportato di seguito:
    <?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>
    è possibile evitare analisi dichiarando @ chiave di tipo ID.
    desc = doc.getNodeFromID("AMC_Labels_3082")
Riferimenti
Per ulteriori informazioni, visitare il seguente sito Web Microsoft Developer Network (MSDN):Per ulteriori informazioni sulle prestazioni di XSLT, fare clic sui numeri degli articoli della Microsoft Knowledge Base riportato di seguito:
325689INFORMAZIONI: Prestazioni di XSLT Transformations in .NET Framework
331026Mostra come Me: Prestazioni ottimizzare il foglio di stile XSLT in .NET using System.Xml

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 815124 - Ultima revisione: 12/08/2015 02:05:43 - Revisione: 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

  • kbnosurvey kbarchive kbmt kbperformance kbxml kbinfo KB815124 KbMtit
Feedback