[web-devel] Content-Length on sendFile

Greg Weber greg at gregweber.info
Wed Jun 15 03:50:27 CEST 2011


On Tue, Jun 14, 2011 at 6:26 PM, Kazu Yamamoto <kazu at iij.ad.jp> wrote:

> Hello,
>
> > I think the reason we didn't include the header is because, when I
> > wrote it, I didn't know of a cross-platform way to get file sizes. Now
> > that I know about unix-compat, this seems like a reasonable thing to
> > add. Anyone know a reason we *shouldn't* do this?
>
> For high performance web servers, system calls are the bottleneck.
> So, Warp or its libraries should avoid unnecessary system calls.
>
> Wai applications HAVE TO call a system call (stat()) to get file
> information (for instance, modification time) and can get a file size
> at the same time. So, they can add Content-Length: with one system
> call.
>

There are 2 basic kinds of WAI apps- those for serving files that might
change (a file server), and those that know exactly what files exist in
advance (a web application). In the case of a web application, we can get
all this information just once at compile time. For a file server, we could
allow a configuration parameter for whether or not to do the system call. Of
course, it is possible to mix these 2 use cases in one application, but that
can be handled with multiple instances of wai-app-static.


> If Warp or its libraries add Content-Length:, they need to call as
> system call again. It gives really bad performance impact.
>
> So, I support the current way of Warp.
>
> --Kazu
>
> _______________________________________________
> web-devel mailing list
> web-devel at haskell.org
> http://www.haskell.org/mailman/listinfo/web-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/web-devel/attachments/20110614/f834f111/attachment.htm>


More information about the web-devel mailing list