[Date Prev][Date Next][Thread Prev][Thread Next] [Search] [Date Index] [Thread Index]

Re: [MacPerl] MacPerl and [A]CGI startup time




There has been a lot of discussion about the annoying wait for MacPerl
CGI's to load and compile, which has interested me greatly. I've written
some database search routines that execute in under a second running
locally, but had about a five second wait time for the load and compile.
After moving MacPerl to the foreground on the server (doh!), that cut the
time to between three and four seconds total, which is on the edge of
tolerable, but still annoying.  However...

Clay Kasow wrote:
>I wrote a web server (called the MacPerl Web Server) which was supposed to
>address the issue of slow CGIs on Mac OS.  All CGIs are precompiled as the
>server is booting up, so they execute super, super fast.

And super fast is right.  It was a slight pain to convert my cgi's but.
once done, it flies like nothing else. Pages load slightly faster than
straight .html files.  Mr. Kasow has been very upfront about certain
deficiencies in MacPerl making his server currently unsuitable for serving
multiple files quickly in a row, but I have off-loaded the graphics serving
to another server and am keeping one machine dedicated spitting out blazing
Perl.  Be aware that I'm using Netpresenz 4.1, which is undoubtedly slower
than WebSTAR 2.0 or (god forbid) 3.0, but I still think the main bottleneck
is at the MacPerl script load and compile step.

I will report more as I stress test the server, but the speed is truly
refreshing.

My comments for the moment are:

(1) Early versions of Netscape on the Mac and PC (i.e. before 3) report an
odd broken pipe error sporadically. I can't tell what causes this, but MSIE
doesn't seem to care. It doesn't seem to correlate with server activity. I
haven't tweaked any of the internal MacPerlWebserver settings yet.

(2) Clay, your server seems to handle POST data in a slightly nonstandard
way. Do I understand correctly that your server code grabs the POST data
off what would have been STDIN for my script and puts in the environment
variable that GET data normally goes to? I.e. POST data looks like GET data
by the time it gets to my script.  I gather this is the case from the code
in your sample form.pl, and using this understanding I finally managed to
convert my script (which used to use cgi-lib.pl to pull FORM data off of
STDIN), though it took me a while to figure that out.

>The server runs on UNIX, and I have reports that it runs on Win 95 & NT as
>well.  It can be downloaded at:  http://www.reed.edu/~ckasow/.

I recommend this as a very promising solution to the slow-CGI problem. I
will give an update on its stablity in the future...

Eric



***** Want to unsubscribe from this list?
***** Send mail with body "unsubscribe" to mac-perl-request@iis.ee.ethz.ch