Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
treex:api-implementation [2016/01/07 18:02] popel |
treex:api-implementation [2016/01/08 14:48] popel |
||
---|---|---|---|
Line 172: | Line 172: | ||
- | ===== Benchmark načítání CoNLL-U | + | ===== Benchmark načítání CoNLL-U |
- | Načítám cs-ud-train-l.conllu. | + | Načítám cs-ud-train-l.conllu |
| | ||
+ | | ||
| | ||
| | ||
| | ||
+ | | ||
+ | | ||
+ | 12.552s vytváří se uzly ze souboru, ale nedávají se do stromů, jen do pole, toto by mělo odpovídat 5.722s+3.500s | ||
10.917s nedělá se split ani rehang, všechny atributy jsou prázdný řetězec, stromy ale mají uzly | 10.917s nedělá se split ani rehang, všechny atributy jsou prázdný řetězec, stromy ale mají uzly | ||
13.460s korektní načtení, netestují se cykly, nevolá se set_parent (ale zopakuje se jeho kód) | 13.460s korektní načtení, netestují se cykly, nevolá se set_parent (ale zopakuje se jeho kód) | ||
- | 15.903s korektní načtení, netestují se cykly, volá se set_parent($parent, | + | 15.903s korektní načtení, netestují se cykly, volá se set_parent($parent, |
- | 16.646s korektní načtení, testují se cykly | + | 16.646s korektní načtení, testují se cykly, volá se set_parent($parent) |
26.666s původní implementace načítání, | 26.666s původní implementace načítání, | ||
19.029s totéž, ale bez převěšování, | 19.029s totéž, ale bez převěšování, | ||
+ | |||
+ | |||
+ | * Původní implementace byla velmi neefektivní, | ||
+ | * Ušetřil jsem 10s, tedy víc než 7s. Volám přímo '' | ||
+ | * Ještě víc by šlo ušetřit vypuštěním testování cyklů v CoNLL-U závislostech (1s) a optimalizací kódu set_parent bez volání této metody (další 2s). | ||
+ | * Nyní se nejvíc času stráví samotným vytvářením uzlů (10.917s-0.844s). To musím ještě prozkoumat. | ||
+ | |||
+ | ===== Benchmark konstruktorů v Perlu ===== | ||
+ | Kolik objektů (uzlů s 9 stringovými atributy) se vytvoří za 1 sekundu: | ||
+ | MooseMut | ||
+ | Moose 65941 | ||
+ | Moo 78156 | ||
+ | ManualA | ||
+ | ManualH | ||
+ | XSAccHp | ||
+ | XSAccAs | ||
+ | XSAccH | ||
+ | --- následující implementace mají konstruktory, | ||
+ | XSAccAf | ||
+ | ManualAf 333188 Manual array-based object, sub fastnew {my $c=shift; bless [@_], $c;} | ||