Skip to content
doc-single.html 270 KiB
Newer Older
Thorsten Eggeling's avatar
Thorsten Eggeling committed
<tr>
<td><font face="arial, helvetica" size="-1">modpython publisher</font></td>
<td align=right><font face="arial, helvetica" size="-1">300</font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1"><b>Spyce-proxy</b></font></td>
<td align=right><font face="arial, helvetica" size="-1"><b>200</b></font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1">JSP</font></td>
<td align=right><font face="arial, helvetica" size="-1">100</font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1">PHP</font></td>
<td align=right><font face="arial, helvetica" size="-1">450</font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1"><b>Spyce-FCGI</b></font></td>
<td align=right><font face="arial, helvetica" size="-1"><b>100</b></font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1">Python-FCGI</font></td>
<td align=right><font face="arial, helvetica" size="-1">140</font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1"><b>Spyce-CGI</b></font></td>
<td align=right><font face="arial, helvetica" size="-1"><b>8</b></font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1">Python-CGI</font></td>
<td align=right><font face="arial, helvetica" size="-1">25</font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1">C-CGI</font></td>
<td align=right><font face="arial, helvetica" size="-1">180</font></td>
</tr>
<tr>
<td><font face="arial, helvetica" size="-1">Static HTML</font></td>
<td align=right><font face="arial, helvetica" size="-1">1500</font></td>
</tr>
</table>
<p>
The throughput results (shown above in requests per second) were measured on a
Intel&nbsp;PIII&nbsp;700MHz, with 128&nbsp;MB of RAM and a 512&nbsp;KB cache
running RedHat Linux&nbsp;7.2 (2.4.7-10&nbsp;kernel), Apache&nbsp;1.3.22 and
Python&nbsp;2.2 using loopback (http://localhost/...) requests. Since each of
the script languages requires an initial compilation phase (of which JSP seems
the longest), the server was warmed up with 100&nbsp;requests before executing
1000&nbsp;measured requests with a concurrency level of&nbsp;3, using the
ab&nbsp;(Apache benchmark) tool. Figures are rounded to the nearest
25&nbsp;requests/second. <p>
<b>Conclusion:</b>All spyce configuration options except CGI
can handle large
websites, as the Spyce engine and cache persist between requests. The CGI
version takes a hit in recompiling Spyce files on every request. (This may be
alleviated using a disk-based Spyce cache (as opposed to the current
memory-based implementation).)
<p>
<big><a name="add_history"></a><b>4.2. <font color=#ee0000>History</font></b></big><p>


The initial idea for a Python-based HTML scripting language came in May 1999,
a few months after I (Rimon) had first learned of Python, while working with JSP on
some website. The idea was pretty basic and I felt that someone was bound to
implement it sooner or later, so I waited. But, nobody stepped up to the task,
and the idea remained little more than a design in my head for two and a half
years. In early 2002, after having successfully used Python extensively for
various other tasks and gaining experience with the language, I began to
revisit my thoughts on a Python-based HTML scripting language, and by late
May&nbsp;2002 the beta of version&nbsp;1.0 was released. <p>
<b>Version&nbsp;1.0</b> had support for standard features like get and post,
cookies, session management, etc. Development was still on-going, but Spyce
was mature and being used on live systems. Support of various features was
enhanced for about a week or two, and then a new design idea popped into my
head. <b>Version&nbsp;1.1</b> was the first modular release of Spyce. Lots of
prior functionality was shipped out of the core engine and into standard
modules. Many, many new modules and features were added. Spyce popularity rose
to the top percentile of SourceForge projects and the user base grew.
<b>Version&nbsp;1.2</b> represented a greatly matured release of Spyce. Spyce
got a totally revamped website and documentation, and development continued.
<b>Version&nbsp;1.3</b> introduced active tags. More performance work, more
modules, etc.
<p>
In February 2005 Jonathan Ellis was hired by SilentWhistle to work on their
web application, written in Spyce. He began by overhauling the Active Tag code
and was soon deep in the guts of Spyce. Jonathan added Active Handlers,
parent templates, and the tag compiler on the way to <b>Version&nbsp;2.0</b>.
<p>
In July 2006 <b>Version&nbsp;2.1</b> introduced the Spyce login tags and
database integration via SQLAlchemy, as well as improvments to parameter
marshalling for Active Handlers.
<p>
For more detail, please refer to the
<a href="https://svn.sourceforge.net/svnroot/spyce/trunk/spyce/CHANGES">change log</a>.
As always, user feedback is welcome and appreciated. <p>

<!-- end body -->
<p>
</td></tr>
<tr><td colspan=5><hr></td></tr>
<tr><td colspan=5 height=15></td></tr>
<tr><td colspan=5>

  <table width="100%" border=0><tr>
    <td align=left valign=top>
      <img alt="Spyce logo" src="/spyce2.png">
      <br>
      <small>Python Server Pages<br>version 2.1.3</small>
    </td><td align=center valign=top>
      <a href="http://spyce.sourceforge.net"><img align=middle width=120 height=50 border=0 src="/spycepow.gif" alt="Spyce Powered"></a>
      <a href="http://sourceforge.net"><img align=middle src="http://sourceforge.net/sflogo.php?group_id=53655&amp;type=5" width="141" height="50" border="0" alt="SourceForge Logo"></a>
    </td><td align=right valign=top>
    </td>
  </tr></table>

</td></tr></table>

</body></html>