Commit 4cffef54 authored by Evan Simpson's avatar Evan Simpson

Benchmarks.

parent 604de1df
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<dtml-in r8>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
</dtml-in>
<dtml-in r8>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
</dtml-in>
<dtml-in r2>
<dtml-in r2>
<dtml-in r2>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
</dtml-in>
</dtml-in>
</dtml-in>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
<dtml-in r64>
<td bgcolor="white">&dtml-x0;</td>
<td bgcolor="white">&dtml-x1;</td>
<td bgcolor="white">&dtml-x2;</td>
<td bgcolor="white">&dtml-x3;</td>
<td bgcolor="white">&dtml-x4;</td>
<td bgcolor="white">&dtml-x5;</td>
<td bgcolor="white">&dtml-x6;</td>
<td bgcolor="white">&dtml-x7;</td>
</dtml-in>
<dtml-in r64>
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
</dtml-in>
<dtml-in r64>
<td bgcolor="white">&dtml-x0;</td>
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
</dtml-in>
<dtml-in r8>
<dtml-let y0=x0 y1=x1 y2=x2 y3=x3 y4=x4 y5=x5 y6=x6 y7=x7>
<td bgcolor="white">&dtml-y0;</td>
<td bgcolor="white">&dtml-y1;</td>
<td bgcolor="white">&dtml-y2;</td>
<td bgcolor="white">&dtml-y3;</td>
<td bgcolor="white">&dtml-y4;</td>
<td bgcolor="white">&dtml-y5;</td>
<td bgcolor="white">&dtml-y6;</td>
<td bgcolor="white">&dtml-y7;</td>
</dtml-let>
</dtml-in>
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<dtml-in tal:repeat="r r8">
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
</dtml-in>
<dtml-in tal:repeat="r r8">
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
</dtml-in>
<dtml-in tal:repeat="r r2">
<dtml-in tal:repeat="r r2">
<dtml-in tal:repeat="r r2">
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
</dtml-in>
</dtml-in>
</dtml-in>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<td bgcolor="white"><span tal:replace="x0"></span></td>
<td bgcolor="white"><span tal:replace="x1"></span></td>
<td bgcolor="white"><span tal:replace="x2"></span></td>
<td bgcolor="white"><span tal:replace="x3"></span></td>
<td bgcolor="white"><span tal:replace="x4"></span></td>
<td bgcolor="white"><span tal:replace="x5"></span></td>
<td bgcolor="white"><span tal:replace="x6"></span></td>
<td bgcolor="white"><span tal:replace="x7"></span></td>
<dtml-in tal:repeat="r r64">
<td bgcolor="white" tal:content="x0"></td>
<td bgcolor="white" tal:content="x1"></td>
<td bgcolor="white" tal:content="x2"></td>
<td bgcolor="white" tal:content="x3"></td>
<td bgcolor="white" tal:content="x4"></td>
<td bgcolor="white" tal:content="x5"></td>
<td bgcolor="white" tal:content="x6"></td>
<td bgcolor="white" tal:content="x7"></td>
</dtml-in>
<dtml-in tal:repeat="r r64">
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
</dtml-in>
<dtml-in tal:repeat="r r64">
<td bgcolor="white" tal:content="x0"></td>
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
A large chunk of text to be repeated.
</dtml-in>
<dtml-in tal:repeat="r r8">
<span tal:define="y0 x0;y1 x1;y2 x2;y3 x3;y4 x4;y5 x5;y6 x6;y7 x7">
<td bgcolor="white" tal:content="y0"></td>
<td bgcolor="white" tal:content="y1"></td>
<td bgcolor="white" tal:content="y2"></td>
<td bgcolor="white" tal:content="y3"></td>
<td bgcolor="white" tal:content="y4"></td>
<td bgcolor="white" tal:content="y5"></td>
<td bgcolor="white" tal:content="y6"></td>
<td bgcolor="white" tal:content="y7"></td>
</span>
</dtml-in>
#! /usr/bin/env python1.5
'''Run benchmarks of TAL vs. DTML'''
try:
import warnings
except ImportError:
pass
else:
warnings.filterwarnings("ignore", category=DeprecationWarning)
import os
os.environ['NO_SECURITY'] = 'true'
import sys, time
import setpath
from DocumentTemplate.DT_HTML import HTMLFile
from HTMLTALParser import HTMLTALParser
from TALInterpreter import TALInterpreter
from DummyEngine import DummyEngine
from cStringIO import StringIO
def time_apply(f, args, kwargs, count):
for i in range(4):
apply(f, args, kwargs)
r = [None] * count
t0 = time.clock()
for i in r:
pass
t1 = time.clock()
for i in r:
apply(f, args, kwargs)
t = time.clock() - t1 - (t1 - t0)
return t / count
def time_zpt(fn, count):
from Products.PageTemplates.PageTemplate import PageTemplate
pt = PageTemplate()
pt.write(open(fn).read())
return time_apply(pt.pt_render, (), {'extra_context': data}, count)
def time_tal(fn, count):
p = HTMLTALParser()
p.parseFile(fn)
program, macros = p.getCode()
engine = DummyEngine(macros)
engine.globals = data
tal = TALInterpreter(program, macros, engine, StringIO(), wrap=0,
tal=1, strictinsert=0)
return time_apply(tal, (), {}, count)
def time_dtml(fn, count):
html = HTMLFile(fn)
return time_apply(html, (), data, count)
def profile_zpt(fn, count, profiler):
from Products.PageTemplates.PageTemplate import PageTemplate
pt = PageTemplate()
pt.write(open(fn).read())
for i in range(4):
pt.pt_render(extra_context=data)
r = [None] * count
for i in r:
profiler.runcall(pt.pt_render, 0, data)
def profile_tal(fn, count, profiler):
p = HTMLTALParser()
p.parseFile(fn)
program, macros = p.getCode()
engine = DummyEngine(macros)
engine.globals = data
tal = TALInterpreter(program, macros, engine, StringIO(), wrap=0,
tal=1, strictinsert=0)
for i in range(4):
tal()
r = [None] * count
for i in r:
profiler.runcall(tal)
tal_fn = 'benchmark/tal%.2d.html'
dtml_fn = 'benchmark/dtml%.2d.html'
def compare(n, count, profiler=None):
t1 = int(time_zpt(tal_fn % n, count) * 1000 + 0.5)
t2 = int(time_tal(tal_fn % n, count) * 1000 + 0.5)
t3 = int(time_dtml(dtml_fn % n, count) * 1000 + 0.5)
print '%.2d: %10s %10s %10s' % (n, t1, t2, t3)
if profiler:
profile_tal(tal_fn % n, count, profiler)
def main(count, profiler=None):
n = 1
print '##: %10s %10s %10s' % ('ZPT', 'TAL', 'DTML')
while os.path.isfile(tal_fn % n) and os.path.isfile(dtml_fn % n):
compare(n, count, profiler)
n = n + 1
data = {'x':'X', 'r2': range(2), 'r8': range(8), 'r64': range(64)}
for i in range(10):
data['x%s' % i] = 'X%s' % i
if __name__ == "__main__":
filename = "markbench.prof"
profiler = None
if len(sys.argv) > 1 and sys.argv[1] == "-p":
import profile
profiler = profile.Profile()
del sys.argv[1]
if len(sys.argv) > 1:
for arg in sys.argv[1:]:
compare(int(arg), 25, profiler)
else:
main(25, profiler)
if profiler is not None:
profiler.dump_stats(filename)
import pstats
p = pstats.Stats(filename)
p.strip_dirs()
p.sort_stats('time', 'calls')
try:
p.print_stats(20)
except IOError, e:
if e.errno != errno.EPIPE:
raise
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment