Konstantni slovnik v C (Judy nebo neco jineho?)

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Středa Červenec 29 18:31:28 CEST 2009


On Wed, 29 Jul 2009, Jan Kasprzak wrote:

> mam sadu dvojic <retezec, cislo> setridenou podle retezce lexikograficky,
> a cilem je toto ulozit na disk tak, aby se to dalo efektivne
> nacist do pameti (idealne mmap()), a pak rychle provadet operace
> "vrat cislo k zadanemu retezci".

Ono se dá udělat to, že se nějaké knihovně, např. té Judy, podstrčí
alokátor paměti, který to bude strkat do nějakého souboru namapovaného
od určené adresy (zrovna pro Judy stačí předefinovat JudyMalloc() a
JudyFree()). Ti, co si tam pak budou chtít číst, si pak soubor s daty
namapují od té samé adresy (pak tam budou sedět ukazatele).

Ovšem je třeba upozornit, že mmap() má netriviální režijní náklady a
výpadky stránek (i soft faults) také nejsou zadarmo, takže se to vyplatí
provádět, až když je předpoklad dostatečně intenzívního využití.

-- 
Pavel Kankovsky aka Peak                          / Jeremiah 9:21        \
"For death is come up into our MS Windows(tm)..." \ 21th century edition /




Další informace o konferenci Linux