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/09 15:04] popel |
treex:api-implementation [2015/12/11 11:14] popel |
||
---|---|---|---|
Line 21: | Line 21: | ||
V Perlu zabírá string (o 0-15 jednobajtových znacích) 56 bajtů, ale když dám stringy do pole, tak se to zaokrouhlí na 64 bajtů. | V Perlu zabírá string (o 0-15 jednobajtových znacích) 56 bajtů, ale když dám stringy do pole, tak se to zaokrouhlí na 64 bajtů. | ||
Int zabírá 24 bajtů a v poli 32 bajtů. | Int zabírá 24 bajtů a v poli 32 bajtů. | ||
- | Když dám stringy/ | + | Když dám stringy/ |
perl -MDevel:: | perl -MDevel:: | ||
Line 27: | Line 27: | ||
perl -MDevel:: | perl -MDevel:: | ||
- | Reference zabírá stejně jako int. | + | Reference |
+ | (V céčku na 64bitech má typicky pointer 8 bajtů, int 4 bajty a long long int 8 bajtů, v poli to zůstává stejné, v hashi přibude režie dle míry naplnění tabulky, ale menší než v Perlu.) | ||
Z hlediska rychlosti by bylo lepší ukládat přímo referenci na string (místo intu, kterým by se pak muselo indexovat pole). | Z hlediska rychlosti by bylo lepší ukládat přímo referenci na string (místo intu, kterým by se pak muselo indexovat pole). | ||
Ušetřil bych 32 bajtů na každém stringovém atributu (a pokud by měl ten string víc než 15 znaků, tak ještě víc) a navíc bych potřeboval paměť pro slovník, která je ale (díky zipfovskému rozdělení lemmat, na větších dokumentech) zanedbatelná. | Ušetřil bych 32 bajtů na každém stringovém atributu (a pokud by měl ten string víc než 15 znaků, tak ještě víc) a navíc bych potřeboval paměť pro slovník, která je ale (díky zipfovskému rozdělení lemmat, na větších dokumentech) zanedbatelná. | ||
Line 44: | Line 45: | ||
==== Benchmark Perlích accessorů ==== | ==== Benchmark Perlích accessorů ==== | ||
- | LV V::Magic H | + | |
- | LV V::Magic A | + | |
- | LV Sentinel H 163699/s | + | LV V::Magic A |
- | LV Sentinel A 168137/s | + | LV Sentinel H 169605/s |
- | Moose | + | LV Sentinel A 170267/s |
- | object H 1219345/s | + | Moose |
- | object A 1237085/s | + | object H 1193837/s |
- | LV C:: | + | object A 1233004/s |
- | LV C:: | + | LV C:: |
- | | + | Mouse 3111529/s |
- | Moo 3698192/ | + | LV C:: |
- | Moops | + | |
- | | + | Moops |
- | O:: | + | |
- | C:: | + | O:: |
- | hash 5248761/s | + | C:: |
- | array | + | hash 4969215/s |
+ | array | ||
+ | |||
+ | Zápis atributu | ||
+ | H-lv-check-sentinel | ||
+ | A-lv-check-sentinel | ||
+ | A-set-check-perl | ||
+ | H-set-check-perl | ||
+ | --- | ||
+ | H-set-lemma-perl | ||
+ | A-set-lemma-perl | ||
+ | A-lv-lemma-perl | ||
+ | H-lv-lemma-perl | ||
+ | --- | ||
+ | A-set-lemma-xs | ||
+ | H-set-lemma-xs | ||
+ | H-lv-lemma-xs | ||
+ | A-lv-lemma-xs | ||
+ | --- | ||
+ | H-direct | ||
+ | A-direct | ||
+ | |||
+ | Čtení atributu: | ||
+ | h-get_lemma_perl | ||
+ | a-get_lemma_perl | ||
+ | h-lv_lemma_perl | ||
+ | a-lv_lemma_perl | ||
+ | --- | ||
+ | h-lv_lemma_xs | ||
+ | a-lv_lemma_xs | ||
+ | h-get_lemma_xs | ||
+ | a-get_lemma_xs | ||
+ | --- | ||
+ | h-direct | ||
+ | a-direct | ||