perl-embperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gerald Richter - ECOS GmbH" <>
Subject RE: Performance problems while building tables
Date Tue, 20 Mar 2007 08:32:58 GMT

Sorry for the late reply.

> using Embperl 2.2.0 with mod_perl 2.0.3 on a linux machine 
> with perl 5.8.8, I have some performance problems with large 
> tables. The code which I have attached at the end of this 
> message takes quite a long time depending on the number of 
> rows of the table. This is the time (in
> seconds) embperl needs to process the code:
> rows                        time
> 500                         16
> 1000                       63
> With other words: When I have the double number of rows, I 
> need the double of the double time to process that.

I can reproduce this here.

This is because Embperl has to compute several parts of the table, just 
to see that the array has ended (value is undef) and throw it away.

I have changed your code to:

  <table border=0  bgcolor="fffffc" >
    <tr bgcolor="E0D8CD">
      <td nowrap >[+ $head[$col] +]</td>
    <tr bgcolor="D9CFBF">
     <td nowrap>[+ $subhead[$col] +]</td>

[$foreach $data (@main_data) $]
  [* if($bgcolor eq
  "#EBE4DA"){$bgcolor="#DED6CB";}else{$bgcolor="#EBE4DA";} *]
    <tr bgcolor=[+ $bgcolor +]>
      [- $i = 0 -]
      [$ foreach $cdata (@$data) $]
      <td nowrap [+ $td_attr[$i++ ] +]>[+ $cdata +]</td>

This has only a factor of 3 instead of 4 when doubling the number of 
rows. This is also not perfect, but at least better than before.

The optimizations Embperl uses to speed things up reverses itself for 
such huge tables :-(


** Virus checked by BB-5000 Mailfilter **


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message