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 [2015/12/11 12:29] popel |
treex:api-implementation [2015/12/11 13:35] ufal |
||
---|---|---|---|
Line 43: | Line 43: | ||
Zde je vidět, že Devel:: | Zde je vidět, že Devel:: | ||
+ | |||
==== Benchmark Perlích accessorů ==== | ==== Benchmark Perlích accessorů ==== | ||
- | Zápis | + | Nejdřív jsem porovnal různé implementace a měřil kolikrát za sekundu se provede zápis |
LV V::Magic H 64 759/s | LV V::Magic H 64 759/s | ||
LV V::Magic A 74 649/s | LV V::Magic A 74 649/s | ||
Line 64: | Line 65: | ||
array 5 386 997/s | array 5 386 997/s | ||
+ | Pak jsem vybral několik implementací a porovnával zápis a čtení zvlášť | ||
Zápis atributu | Zápis atributu | ||
H-lv-check-sentinel | H-lv-check-sentinel | ||
Line 101: | Line 103: | ||
Co z toho plyne? | Co z toho plyne? | ||
- | * Všechny čtení i zápisy | + | * Všechny čtení i zápisy jsou zřejmě " |
* Pole jsou jen o málo rychlejší než hashe. Možná by se rozdíl zvětšil, kdybych měl v objektu více atributů než jeden, ale víc než 16 jich asi mít nechceme ('' | * Pole jsou jen o málo rychlejší než hashe. Možná by se rozdíl zvětšil, kdybych měl v objektu více atributů než jeden, ale víc než 16 jich asi mít nechceme ('' | ||
* Čtení je podobně rychlé jako zápis atributu obdobnou metodou. | * Čtení je podobně rychlé jako zápis atributu obdobnou metodou. | ||
Line 116: | Line 118: | ||
* Přidáním kontroly/ | * Přidáním kontroly/ | ||
* To 3x zpomalení při zápisu by mi nevadilo. Ale to 5x násobné zpomalení při čtení je nepříjemné, | * To 3x zpomalení při zápisu by mi nevadilo. Ale to 5x násobné zpomalení při čtení je nepříjemné, | ||
+ | * Na druhou stranu je otázka, zda se podaří zrychlit zbytek Treexu natolik, aby se projevil rozdíl v řádu 200 **nano**sekund na čtení jednoho atributu (pesimisticky předpokládejme, | ||
+ | |||
+ | ==== Identifikátory ==== | ||
+ | |||
+ | V dosavadním Treexu byly identifikátory (uzlů) považovány za nevyhnutelnou režii a byly zpracovávány (generovány, | ||
+ | |||
+ | Nabízí se znovu zvážit: | ||
+ | - Jakých hodnot mají identifikátory nabývat | ||
+ | - Jak má být realizováno indexování identifikátorů | ||
+ | |||
+ | 1) Hodnoty identifikátorů | ||
+ | - atomické nebo strukturované (hierarchicky složením id dokumentu+bundlu+zóny+uzlu)? | ||
+ | - pokud hierarchické, | ||
+ | - v jakém scopu musí být id unikátní? | ||
+ | |||
+ | 2) Indexování identifikátorů | ||
+ | - zanášet do indexu automaticky jako nyní, nebo líně (při prvním využití), nebo ještě nějak jinak? | ||
+ | - kde držet index (asi nadále mapu id-uzel)? U dokumentu jako teď, nebo u runneru? | ||
+ | |||
+ | |||
+ |