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/08 17:29] popel |
treex:api-implementation [2016/01/08 19:03] popel |
||
---|---|---|---|
Line 150: | Line 150: | ||
=== SORTED-CHILDREN === | === SORTED-CHILDREN === | ||
- | Děti se ukládají setříděně buď do pole, nebo do spojáku (tedy každý uzel má pointer _next_node, případně i obousměrně _prev_node). Buď se ukládají pravé a levé děti zvlášť, nebo se při vracení dětí s přepínačem '' | + | Děti se ukládají setříděně buď do pole, nebo do spojáku (tedy každý uzel má pointer _next_node, případně i obousměrně _prev_node). Buď se ukládají pravé a levé děti zvlášť, nebo se při vracení dětí s přepínačem '' |
=== SORTED-CHILDREN + ALL-NODES === | === SORTED-CHILDREN + ALL-NODES === | ||
Line 172: | Line 172: | ||
- | ===== Benchmark | + | ===== Profiling |
Načítám cs-ud-train-l.conllu (68 MB, 41k sentences, 0.8 MWords). Časy v sekundách. Excl(usive) časy se sčítají, krom těch označených " | Načítám cs-ud-train-l.conllu (68 MB, 41k sentences, 0.8 MWords). Časy v sekundách. Excl(usive) časy se sčítají, krom těch označených " | ||
Line 190: | Line 190: | ||
- | * Původní implementace byla velmi neefektivní, | + | * Původní implementace byla velmi neefektivní, |
- | * Ušetřil jsem 10s, tedy víc než 7s. Volám přímo '' | + | * Vypuštěním testování cyklů v CoNLL-U závislostech se ušetří necelá sekunda, což za to asi nestojí. |
- | * 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 | + | * Optimalizací kódu set_parent bez volání této metody se jakoby ušetří 2.5s. |
- | * Nyní se nejvíc času stráví samotným vytvářením uzlů (10.917s-0.844s). To musím ještě prozkoumat. | + | * Poměrně dost času (4.3s) zabere vytváření 9 proměnných |
+ | * Když jsem všechny uzly ukládal do pole, tak odalokování pole (s 0.8M uzlů) trvalo cca 1s. To jsem do profilingu nezahrnul, ale benchmark jsem musel ručně spouštět víckrát. | ||
===== Benchmark konstruktorů v Perlu ===== | ===== Benchmark konstruktorů v Perlu ===== |