[ Skip to the content ]

Institute of Formal and Applied Linguistics Wiki


[ Back to the navigation ]

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
treex:api-implementation [2015/12/11 10:13]
popel
treex:api-implementation [2015/12/11 11:16]
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/inty do hashe (místo do pole), tak je to taky 64/32 bajtů, jen je tam samozřejmě ještě nějaká režie na ten hash. Viz+Když dám stringy/inty do hashe (místo do pole), tak je to taky 64/32 bajtů, jen je tam samozřejmě ještě nějaká režie na ten hash, takže to vychází 128/96 bajtů. Viz
  
   perl -MDevel::Size=:all -E 'my $s="s"; say total_size {map {$_=>$s} 1..1_000_000}' # string 128M   perl -MDevel::Size=:all -E 'my $s="s"; say total_size {map {$_=>$s} 1..1_000_000}' # string 128M
Line 27: Line 27:
   perl -MDevel::Size=:all -E 'my $s="s"; say total_size {map {$_=>\$s} 1..1_000_000}'# ref     96M   perl -MDevel::Size=:all -E 'my $s="s"; say total_size {map {$_=>\$s} 1..1_000_000}'# ref     96M
  
-Reference zabírá stejně jako int.+Reference v Perlu zabírá stejně jako int (a to těch 24 bajtů samostatně, 32 bajtů v poli, 96 bajtů v hashi). 
 +(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 v Céčku se objekty nedávají do hashe, leda snad wild atributy.)
 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 82: Line 83:
   A-direct            10 180 350/s   A-direct            10 180 350/s
  
-  Čtení atributu: +  Čtení atributu:  
-  h-get_lemma_perl 502 283/s  +  h-get_lemma_perl 453 219/s 
-  h-lv_lemma_perl   185 777/s +  a-get_lemma_perl  2 572 440/s 
 +  h-lv_lemma_perl   206 187/s 
 +  a-lv_lemma_perl   3 406 574/s
   ---   ---
-  h-lv_lemma_xs     227 402/s  +  h-lv_lemma_xs     5 825 422/s 
-  h-get_lemma_xs    6 959 574/s +  a-lv_lemma_xs     412 374/s 
 +  h-get_lemma_xs    6 859 843/s 
 +  a-get_lemma_xs    7 489 828/s
   ---   ---
-  h-direct         10 144 688/s +  h-direct         10 144 688/s 
 +  a-direct         12 112 263/s 

[ Back to the navigation ] [ Back to the content ]