Hi folks -- this may be more of a FormHandler question than a Catalyst question but I thought I'd check here to see if it's just us:<div><br></div><div>We've been using HTML::FormHandler and are basically happy with it... until the performance issue mentioned below hit us. Any Catalystas running into 50-second turnaround time with H:FH?<br clear="all">
<br></div><div><div><font class="Apple-style-span" face="'courier new', monospace">[info] Request took 51.956100s (0.019/s)</font></div><div><font class="Apple-style-span" face="'courier new', monospace">.------------------------------------------------------------+-----------.</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">| Action | Time |</font></div><div><font class="Apple-style-span" face="'courier new', monospace">+------------------------------------------------------------+-----------+</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">| /auto | 0.000181s |</font></div><div><font class="Apple-style-span" face="'courier new', monospace">| /auth | 0.001857s |</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">| /ticket/base | 0.004652s |</font></div><div><font class="Apple-style-span" face="'courier new', monospace">| /ticket/item | 0.005865s |</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">| /ticket/edit | 51.88091s |</font></div><div><font class="Apple-style-span" face="'courier new', monospace">| Base:EDIT | 51.88050s |</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace">| get FORM | 0.000078s </font><span class="Apple-style-span" style="font-family: 'courier new', monospace; ">|</span></div>
<div><span class="Apple-style-span" style="font-family: 'courier new', monospace; background-color: rgb(255, 255, 153);">| process FORM | <b>51.87286s</b> |</span></div>
<div><span class="Apple-style-span" style="font-family: 'courier new', monospace; ">| /end | 0.000290s |</span></div><div><font class="Apple-style-span" face="'courier new', monospace">'------------------------------------------------------------+-----------'</font></div>
</div><div><br></div><div>Turnaround time ranges from 6 seconds to 50+ seconds, with no discernable pattern to the delay. (We can edit the same record multiple times and get wildly differing lags.)</div><div><br></div><div>
The code for the processing is basically as follows:</div><div><br></div><meta charset="utf-8"><div><font class="Apple-style-span" face="'courier new', monospace"> $stats->profile(begin=>'get FORM');</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> my $form = $self->form;</font></div><meta charset="utf-8"><div><font class="Apple-style-span" face="'courier new', monospace"> $stats->profile(end=>'get FORM');</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> my $params = $c->req->params;</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> <span class="Apple-style-span" style="background-color: rgb(255, 255, 153); ">$stats->profile(begin=>'process FORM');</span></font></div>
<div><div><font class="Apple-style-span" face="'courier new', monospace"> my $processed = $form->process(</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> item => $item,</font></div>
<div><font class="Apple-style-span" face="'courier new', monospace"> params => $params,</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> );</font></div><div><font class="Apple-style-span" face="'courier new', monospace"> <span class="Apple-style-span" style="background-color: rgb(255, 255, 153);">$stats->profile(end=>'process FORM');</span></font></div>
<div><br></div><div>System load for this (Linode) server was 0.04 or below during all our tests. There are 31 fields in this form relating to one table in the database; two of these forms are <b>many_to_many</b> with linking tables.</div>
<div><br></div><div>Ideas?</div><div><br></div>-- <br>11 cheers for binary!<br>
</div>