Thread Cache-Cache: make test hängt bei 4_test_shared_memory_cache.t (6 answers)
Opened by GwenDragon at 2010-11-17 19:34

kristian
 2010-11-18 17:56
#142856 #142856
User since
2005-04-14
684 Artikel
BenutzerIn
[Homepage] [default_avatar]
2010-11-17T18:34:39 GwenDragon
Die Installation von Cache::Cache 1.06 klappt mit cpan nicht.

make läuft durch.
Aber make test hängt.

Running make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1_test_cache_interface.t ................. ok
t/2_test_memory_cache.t .................... ok
t/3_test_file_cache.t ...................... ok
t/4_test_shared_memory_cache.t ............. 1/35 |


Seltsamerweise hängt dann make test bei, t/4.....

Woran könnte das liegen?


Den Fehler bzw. die Erklärung findest du wohl in der Doku.

Cache/SharedMemoryCache.pm:
FileCache works well on every OS, whereas the SharedMemoryCache works only on systems that support IPC::ShareLite. And IPC::ShareLite is an impressive effort -- but think about how hard it is to get shared memory working properly on *one* system. Now imagine writing a wrapper around shared memory for many operating systems.

In IPC::ShareLite bzw. IPC/Shareable.pm kannst du dann weiter lesen.
IPC::ShareLite provides an abstraction of the shared memory and semaphore facilities of SysV IPC, allowing the storage of arbitrarily large data; the module automatically acquires and removes shared memory segments as needed.

Das ist schonmal nur bedingt wahr, die Anzahl und Größe der verfügbaren Segmente ist vom OS abhängig bzw. kann beim Kernelkompilieren eingestellt werden.

Ich würde mich damit nicht belasten, wenn du den Cache im Ram brauchst kannst du auch Cache::FileCache auf /dev/shm nehmen, da hast du im Normalfall die Hälfte des gesamten Arbeitsspeichers zu Verfügung und damit deutlich mehr als in den paar Segmenten die IPC::Share* beackert.

Gruß
Kristian

EDIT: Fipptehler

Last edited: 2010-11-18 18:02:16 +0100 (CET)

View full thread Cache-Cache: make test hängt bei 4_test_shared_memory_cache.t