* 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