Skip to content

Commit

Permalink
результаты
Browse files Browse the repository at this point in the history
  • Loading branch information
pasaran committed Jan 8, 2010
1 parent 674989f commit 05da32a
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 5 deletions.
4 changes: 4 additions & 0 deletions README.md
Expand Up @@ -40,3 +40,7 @@
Кроме того, чем короче xpath в match'е ключа, тем лучше.
И в случае длинного xpath'а, лучше сделать его абсолютным, чем относительным.

12. С ключом таки быстрее, чем без ключа. Чуда не случилось.
В данном случае, выгоднее абсолютный путь в ключе. А короткий относительный путь просто неприемлимо долго считается.
Вывод: думать надо всякий раз, основываясь на знании xml'я.

22 changes: 21 additions & 1 deletion key-vs-select/README.md
@@ -1,4 +1,24 @@
Насколько полезно использовать ключ
===================================

Результаты тестов
=================
-----------------

-----------------------------------------------------------------------------------------------
../xml/l25000_.xml run parse xsl parse xml
-----------------------------------------------------------------------------------------------
key-abs.xsl 193.28 0.00 248.22
key-rel.xsl 210.08 0.00 248.20
select.xsl 399.84 0.00 248.42


Выводы
------

Ну, чуда не случилось. Ключи быстрее.

При этом абсолютный путь '/items/labels/label` в ключе лучше относительного `labels/label`.
Если же выбрать путь просто `label`, то выполняться будет существенно дольше (я не дождался).
Но. Если бы теги label внутри item'ов назывались бы по-другому, т.е. если бы в ключ нужно было бы
запихать все теги label, то было бы выгоднее как раз использовать путь `label`.

File renamed without changes.
17 changes: 17 additions & 0 deletions key-vs-select/key-rel.xsl
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
>

<xsl:include href="../common.xsl"/>

<xsl:output method="xml"/>

<xsl:key name="labels" match="labels/label" use="@id"/>

<xsl:template match="item">
<xsl:value-of select="key('labels', label/@id)"/>
</xsl:template>

</xsl:stylesheet>

4 changes: 3 additions & 1 deletion key-vs-select/make.test
@@ -1,3 +1,5 @@
../xml/l25000_.xml
*
key-abs.xsl
key-rel.xsl
select.xsl

7 changes: 4 additions & 3 deletions key-vs-select/results
@@ -1,6 +1,7 @@
-----------------------------------------------------------------------------------------------
../xml/5000_.xml run parse xsl parse xml
../xml/l25000_.xml run parse xsl parse xml
-----------------------------------------------------------------------------------------------
keys.xsl 39.34 0.00 50.90
select.xsl 79.64 0.00 50.90
key-abs.xsl 193.28 0.00 248.22
key-rel.xsl 210.08 0.00 248.20
select.xsl 399.84 0.00 248.42

0 comments on commit 05da32a

Please sign in to comment.