Paweł Grzegorz Kwiatkowski

Paweł Grzegorz Kwiatkowski Architekt
oprogramowania,
Ericsson

Temat: [C/Unix] Shared memory + hash table

Czy ktoś zna i może polecić bibliotekę zapewniającą funkcjonalność tablicy haszującej ale działającej na pamięci współdzielonej? Ogólnie chciałbym w pamięci współdzielonej umieszczać ustalone struktury danych i nie odkrywać koła na nowo. Jednocześnie mieć szybki dostęp.
Poszukuję gotowca, coś na wzór biblioteki uthash, tylko operującej na shared memory.

konto usunięte

Temat: [C/Unix] Shared memory + hash table

Jeśli chodzi o C++ to jest coś takiego w Boost:

http://www.boost.org/doc/libs/1_41_0/doc/html/interpro...

Spróbuj zmienić ten fragment na unordered_map (potrzeba więcej parametrów):

typedef vector<int, ShmemAllocator> MyVector;


unordered_map z Boosta nie polecam, u mnie działał wielokrotnie wolniej od zwykłej mapy przy kluczu string.

Patrz:
http://incise.org/hash-table-benchmarks.htmlPiotr Likus edytował(a) ten post dnia 07.06.11 o godzinie 09:18
Paweł Grzegorz Kwiatkowski

Paweł Grzegorz Kwiatkowski Architekt
oprogramowania,
Ericsson

Temat: [C/Unix] Shared memory + hash table

Dzięki, benchmarki wyglądają interesująco. Szukam co prawda biblioteki do C, a nie C++ ale dodatkowa wiedza nie zaszkodzi :)
Piotr P.

Piotr P. Software Developer

Temat: [C/Unix] Shared memory + hash table

Piotr P.:
http://developer.gnome.org/glib/2.28/glib-Hash-Tables....

g_hash_table_new(), jak wszystko w GLib alokuje pamięć chyba tylko dla siebie, aczkolwiek jako nieprogramista mogę się mylić :)
Piotr P.

Piotr P. Software Developer

Temat: [C/Unix] Shared memory + hash table

Paweł Sopel:
Piotr P.:
http://developer.gnome.org/glib/2.28/glib-Hash-Tables....

g_hash_table_new(), jak wszystko w GLib alokuje pamięć chyba tylko dla siebie, aczkolwiek jako nieprogramista mogę się mylić :)

Ale w zależności od zastosowania można użyć DBus. Zarówno ten, jak i GLib są dostępne poprzez introspekcje GIR więc nie trzeba wszystkiego pisać w C. Pamięć współdzielona (jak i tablice haszujące) powinna być wspierana przez APR. Poza tym, sam GLib alokuje pamięć na kilka różnych sposobów.
Adam Woźniak

Adam Woźniak software architect
and developer

Temat: [C/Unix] Shared memory + hash table

Kiedyś czytałem też o google-sparsehash.
http://code.google.com/p/google-sparsehash/

Ponoc - bardzo oszczędna pamieciowo.
Niestety nie wiem, czy można jej użyć na pamieci dzielonej.

Następna dyskusja:

Krakow Hash House Harriers ...




Wyślij zaproszenie do