As another example, you have a fully parsed MARC::Record object representation for a given biblio. You can store that object away, and the next time you need to reference it (when a user clicks for the details page, or the MARC page, etc.) you can retrieve and use it without having to call:
* biblioitems for the marcxml * MARC::Record->new_from_xml
Biblio record objects are heavy weight and processing hungry to build up and process. XSLT.pm seems to me a good place to examine in order to find out improvement opportunities... For example: my $style_doc = $parser->parse_file($xslfile); my $stylesheet = $xslt->parse_stylesheet($style_doc); XSLT stylesheet object is yet rebuild for each biblio record to transform. It could be cached per session in script global variable: immediat benefit on result page. And it could be cached with Memcached. Same applies with framework and authorized values. -- Frédéric