[hunchentoot-devel] Static file handling performance

Andrei Stebakov lispercat at gmail.com
Fri Jun 20 18:41:07 UTC 2008


I use flexi-streams-0.15.3.
I didn't measure the response time using any tools (like httperf), I was
just visually evaluating response time. It was much longer for
handle-static-file. No, I didn't try the development version yet, I'll try
it.


On Fri, Jun 20, 2008 at 2:20 PM, Edi Weitz <edi at agharta.de> wrote:

> On Fri, 20 Jun 2008 12:56:33 -0400, "Andrei Stebakov" <lispercat at gmail.com>
> wrote:
>
> > I had to come up with some way to cache dynamic files that I have to
> > serve, so I ended up with a bunch of static files which I served by
> > a simple function:
> > (defun file-to-string (path)
> >   "Reads a file into a string"
> >   (if (probe-file path)
> >       (with-open-file (in path)
> >         (let ((str (make-string (file-length in))))
> >           (read-sequence str in)
> >           str))))
> >
> > The performance was very good, but then I thought that it's not the
> > proper way to serve static files as there is a hunchentoot function
> > handle-static-file.
> > When I started using the hunchentoot's function the response time
> > almost tripled and when I run "top" program to monitor CPU usage it
> > jumps up to 60% (on my PIII 600 MHz) CPU, whereas using
> > file-to-string CPU usage stays with 2% (maybe because the serving
> > time is much shorter top doesn't catch that CPU peak).
>
> How did you measure the response time?  Which version of FLEXI-STREAMS
> are you using?  Did you try with the development version?
>
> > My question is what could be the reason I see this behaviour? (I am
> > using SBCL 1.0.15 with latest dependences of hunchentoot-0.15.7)
>
> Look at the source code of handle-static-file.  It uses a fixed size
> buffer which is likely smaller than your file.
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/tbnl-devel/attachments/20080620/3e864d0c/attachment.html>


More information about the Tbnl-devel mailing list