先日、オンメモリなキャッシュモジュール Cache::LRU を書きました。Kazuho's Weblog: Cache::LRU (a handy and fast in-memory cache module in pure-perl) を見ていただければ、Cache::LRU が他のモジュールより速いことは明らかだと思います。速度差の原因としては機能や実装上の差異もあるのですが、設計上の工夫も Cache::LRU が速い理由のひとつです。 LRU (Least Recently Used) アルゴリズムを備えたキャッシュを実装しようと思うと、 エントリルックアップのためのハッシュ アクセス順を表現するためのリスト の2種類を組み合わせる必要があります。リストを表現する手法としては配列を利用するものとリンクリストを利用するものがありますが、Perl だと前者のほうが速い、ということは
![Cache::LRU が速い理由 - Articles Advent Calendar 2010 Hacker](https://cdn-ak-scissors.b.st-hatena.com/image/square/54652e9496d97561026f1e31c7f047f6fc6485c1/height=288;version=1;width=512/https%3A%2F%2Fres.cloudinary.com%2Fkfly8%2Fimage%2Fupload%2Fl_text%3ANotoSansJP-Black.otf_50_bold%3ACache%253A%253ALRU%2520%25E3%2581%258C%25E9%2580%259F%25E3%2581%2584%25E7%2590%2586%25E7%2594%25B1%2Cco_rgb%3A000000%2Cw_900%2Cc_fit%2F%2Fv1601626948%2Fog-perl-users-jp.png)