On Sun, Sep 29, 2002 at 01:05:38AM -0000, [EMAIL PROTECTED] wrote:
> brianp      2002/09/28 18:05:38
> 
>   Modified:    buckets  apr_brigade.c
>   Log:
>   Rewrite of apr_brigade_writev().  It's now more efficient for
>   both large and small inputs: zero-copy for data larger than 8KB,
>   fewer operations (and fewer branches) per for-loop iteration
>   for the <= 8KB case.

Cool!

I presume you found the "count the length up front" to have no impact in the
short case? Thus, going ahead and doing the count and then the switch to
transient buckets?

One thing I just realized, though: if there is no flush function, then a
transient could be a problem. I just double-checked apr_brigade_write() and
it switches over to HEAP buckets for that case. Should _writev follow the
same pattern?

btw, good call on the flush in between the two HEAP buckets. I woulda missed
that, and it could be a Bad Thing [if a _writev added a little, added a
little, added a little... and now you've got a billion HEAP buckets].

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Reply via email to