* Debarshi Ray wrote on Tue, Aug 19, 2008 at 10:57:33PM CEST:
> > FWIW, your current algorithm of adding BUFSIZ to size causes nonlinear
> > amount of work done in realloc, for reading large files.  You might
> > want to increase memory by a constant factor or BUFSIZ, whichever is
> > larger (e.g., just like read-file does), and thus less often than you
> > recv.
> 
> So the following has been changed to:

> 
>       if (nread < BUFSIZ)
>         break;
>       else
>         *size += (*size / 2 > BUFSIZ) ? *size / 2 : BUFSIZ;

Yes but also you should not reallocate at all if count + BUFSIZ still
fits in the current buffer (i.e., don't realloc for every recv).

Cheers,
Ralf


Reply via email to