https://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=11998
--- Comment #128 from Jacek Ablewicz <[email protected]> --- (In reply to Jacek Ablewicz from comment #126) > 3) with patch & default caching system (Cache::Memory): 98 ms + 70 ms spent > in ->get_from_cache() + 10 ms spent in ->set_in_cache() - sorry, forgot to include that statement run time Conclusion: Cache::Memory is not very efficient when used to store a lot of simple variables - probably because: - it's pure perl (?) - we currently serialize/deserialize all data types (including scalars) with freeze()/thaw() when using Cache::Memory Memcache is better (up to 2x on average) for simple variables - it's XS, and it serializes only complex data structures, but there is (more or less constant) 40usec penalty involved due to network latency/turnaround. Both chache systems are quite terrible for caching big, complex data structures (one MARC framework: 900 kilobytes; Cache::Memory is a bit faster then memcache in this case), mostly because they need to deserialize those structures each time when the data is fetched. We can try to use better serializer (Sereal etc.) - it may help speed up things for memcache (MARC framework storage size will go down to 300-100KB), but there is virtually nothing we can do to improve deserialization time. Instead, one can avoid doing the same expensive operation 50x times per script run, i.e. by implementing cache with 2+ levels (1st level being a simple hash or CHI::Driver::RawMemory for example, and 2nd level - memcache etc.) -- You are receiving this mail because: You are watching all bug changes. _______________________________________________ Koha-bugs mailing list [email protected] http://lists.koha-community.org/cgi-bin/mailman/listinfo/koha-bugs website : http://www.koha-community.org/ git : http://git.koha-community.org/ bugs : http://bugs.koha-community.org/
