<html><body>
<p><font size="2" face="sans-serif">Dear List</font><br>
<br>
<font size="2" face="sans-serif">we're building a new cgi/export-plugin solution to support publication lists in our web. Doing some searches, building some lists, remainder/union/intersect them together, and finaly, we export a kind of XML, including metadata and a citation.</font><br>
<font size="2" face="sans-serif">Actually everything works quite well, BUT if the result turns into long lists, we are running into performance problems.</font><br>
<br>
<font size="2" face="sans-serif">We did some benchmarking and here is the result over a typically 1000-item-list:</font><br>
<br>
<font size="2" face="sans-serif">- building up the result needs 15 sec.</font><br>
<font size="2" face="sans-serif">- search and generate lists 0.015sec</font><br>
<font size="2" face="sans-serif">- merge lists 0.08sec</font><br>
<font size="2" face="sans-serif">- generation of export data 14sec</font><br>
<br>
<font size="2" face="sans-serif">congrats: dealing with search and lists is very fast within eprints :-)</font><br>
<br>
<font size="2" face="sans-serif">so we took a closer look at what happens while building the output.</font><br>
<font size="2" face="sans-serif">first of all: it grows linearly with the use of render_citation.</font><br>
<br>
<font size="2" face="sans-serif">1 time &nbsp; '$citation = EPrints::Utils::tree_to_utf8($dataobj-&gt;render_citation(&quot;default&quot;));' takes 14sec</font><br>
<font size="2" face="sans-serif">2 times '$citation = EPrints::Utils::tree_to_utf8($dataobj-&gt;render_citation(&quot;default&quot;));' takes 29sec</font><br>
<font size="2" face="sans-serif">4 times '$citation = EPrints::Utils::tree_to_utf8($dataobj-&gt;render_citation(&quot;default&quot;));' takes 54sec</font><br>
<br>
<font size="2" face="sans-serif">second: it speeds up while reducing the citation XML file (default) to a minimum; when it only includes the title, the export needs 2sec for 1000 items.</font><br>
<br>
<font size="2" face="sans-serif">So my question is: Is there a way to speed up render_citation? Does it always interpret the whole citation XML file? Has anybody thought about a way to compile the XML to a perl routine or cache things like this?</font><br>
<br>
<font size="2" face="sans-serif">Any help is welcome</font><br>
<font size="2" face="sans-serif">&nbsp;Jens</font><br>
<br>
<br>
<font size="2" face="sans-serif">-- <br>
Jens Vieler<br>
Informatikdienste<br>
Universität Zürich<br>
Stampfenbachstrasse 73<br>
CH-8006 Zürich<br>
<br>
mail: &nbsp;jens.vieler@id.uzh.ch<br>
phone: +41 44 63 56777<br>
</font><font size="2" face="sans-serif"><a href="http://www.id.uzh.ch">http://www.id.uzh.ch</a></font></body></html>