ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Bu makale arşivlenmiştir. "Olduğu gibi" sunulmaktadır ve bundan sonra güncelleştirilmeyecektir.
Özet
Bu makalede, Genişletilebilir Stil Sayfası Dili (XSL) dönüşümleri performansını artırmak için bazı teknikleri listelenir. XSL işlevsel bir dildir. XSL ortak dil özelliklerini desteklemiyor. Örneğin, XSL globals veya dönüş değerleri desteklemiyor. XSL bir nesne odaklı dil değildir ve modüler, işlemci döngüsü maliyetler. XSL için hiçbir hata ayıklama yok, bu nedenle, hata ayıklama zor olur.
Daha fazla bilgi
Performans'ın bir XSL dönüşümünün kullandığınız senaryolara bağlıdır. Bu makalede listelenen teknik genel yönergeler ' dir. Her ayarlama sonuçlarını ölçmek emin olun. Yalnızca sınama veya belirli bir teknik performansını artırır olup olmadığını kanıtlayabilirsiniz. Microsoft XSL işlemci kullanarak komut satırı XSL dönüştürmelerini gerçekleştirmek için de sınama msxsl.exe komut satırı yardımcı programını kullanabilirsiniz. Msxsl.exe yardımcı programı 4.0 dönüştürme gerçekleştirmek için Microsoft XML Parser ' (msxml4.dll) çağırır. Bu yardımcı program aşağıdaki MSDN'DEN karşıdan site:
Sayfalarınızı oluşturmak için en yaygın kod yollarını tanımlamak ve bu yollar en iyi duruma getirme. XSL yüksek yeniden bölümlerini en iyi duruma getirin.
Öznitelikleri Sub-Elements kullanmak yerine, mümkün olan her yerde kullanın. Öğeleri yerine özniteliklerini kullanarak performansını artırır. Gevşek yazılan çünkü öznitelikleri XPath eşleşme yapılırken, daha hızlı gerçekleşir. Bu doğrulama şemasının kolaylaştırır.
Daha belirgin bir yol yerine kullanın "/ /" mümkün olan her yerde. XML verilerini büyük olduğunda "/ /" özyinelemeli decedent arama çok pahalıdır. Belirli bir XPath ifadesi daha hızlı uygular.
Öznitelik değerleri eşleştiğinde, numaralayıcı öznitelikleri'ni kullanın. True veya false değerlerini ayarlamak ve bit birden çok öznitelik adları kullanın. Örneğin:
<element_name attr1="1" attr2="1" attr3="0">
Komut dosyasını kullanın. Komut dosyası kullanarak performansı indirgedikten.
Performansı artırmak için doğrudan adıyla karşılaştırın. Örneğin yerine aşağıdaki kodu:
./info[type='title']
şu kodu kullanın:
./title
ne zaman, yerine adı gibi değerleri karşılaştırmak:
Select="*[name()='sample']"
şu kodu kullanın:
Select="sample"
XPath işleme ad nedeniyle, bu tam olarak eşdeğerdir.
MSXML, sürüm 3.0 ve sonraki sürümleri, tüm sürümleri ile açık dizin süzgeci daha hızlıdır. Performans geliştirme üst <a1>alt</a1> listesinde öğenin konumunu bağlıdır. Aşağıdaki yerine:
/child_element
aşağıdakileri kullanın:
/child_element[1]
Parametreler, her sorgu değerlendirme yerine kullanın.
XSL Dönüşümleri birden çok seçenek sağlar, ancak bunların tümünün doğru gerçekleştirmemeyi. Örneğin, yerine aşağıdaki dönüştürme:
<xsl:output method="html"/>
aşağıdaki dönüşümü kullanın: <a1>
<xsl:output method="html" indent="no" />
Girinti çok miktarda istenmeyen boşlukları çıktı sağladığından, bu performansı artırır. Varsayılan olarak, öznitelik girinti için Evet değerdir.
Satır içi şablon ile for-each ya da bir şablon uygulamak şablon eşleştiğinden emin olduğunuzda mod özniteliği. Örnek:
aynı modu ile diğer tüm şablonlarında değerlendirilir. Varsayılan Şablonları'nı çalıştırmak, işlemci başlatır. Bu tüm metin düğümlerin kopyalar ve şu çağrı:
<xsl:apply-templates>
tüm öğeler için. Bu nedenle, özgün nodeset tüm çocuklar için olası eşleşmeleri ifade olarak değerlendirilir. Deyimi eşleşen bir görevi değil. Performansı artırmak için <a0></a0>, kodu aşağıdaki gibi yeniden:
Daha az şablonlarını kullanın. Bu, aynı şablonu birden çok kez çalıştırdığınızda geçerlidir. Performans ile sıkı bazı geliştirme yok for-each şablonların sayısı az olduğunda bir şablonu aramak için döngü.
Kullanımını azaltmak xsl: seçin / xsl: when / xsl: yoksa. Performans parametreden seçimlerin çoğu Sonbahar yoksa tümcesi. Bu nedenle , ile eşleşen ve belirli bir değeri var olduğunu bildiğinizde, aksi halde kullanmaktan kaçınmaktır deneyin.
xsl:Variables dinamik değerlerdir. Bu değişkenler önbelleğinde değildir ve XSL içinde başvurulan her zaman çalıştırın. Açık tür xsl:variable çevrim performansını artırır. Yapabileceğiniz çevrim string() ve boolean() işlevlerle yazın. Örneğin:
MSXML ayrıştırıcısının ve XmlReader ve XmlWriter farklıdır.
MSXML, XML verilerini bir belge nesne modeli yükler (DOM). Bu DOM ağaçtan verileri kolayca XPath ile gidilen, XSL ile dönüştürülmüş veya düzenlenebilir ve yeniden kaydedilir. Bu, daha kolay bir geliştirme ve daha güçlü özellikleri pahasına bellek kullanımı ve hızı sağlar.
XmlReader ve XmlWriter sıralı okuyucuları ve yazıcıları var. Geliştirici el ile okuma ve XML veri yazma durumunu korur. Bu en az bellek kullanımına izin verir ve bu nedenle, performansı artırır.
MSXML ayrıştırıcısının de SAX (XML basit API) destekler. SAX ardışık değil. .NET framework DOM XmlDocument sınıfını kullanarak da destekler.
Üzerinde .NET kullanımını en iyi seçim bağlıdır framework ve XML ile gerçekleştir görevi.
Bu teknik, veritabanı performansını ilişkilidir. Arama alanları aşağıdaki gibi pre-joining MSXML ve System.XML performans artırılabilir: