https://issues.apache.org/bugzilla/show_bug.cgi?id=48024

--- Comment #1 from Basant Kumar Kukreja <[email protected]> 2009-10-19 
11:54:06 UTC ---
Created an attachment (id=24397)
 --> (https://issues.apache.org/bugzilla/attachment.cgi?id=24397)
Patch

sed needs to buffer the line until it finds the end of the line. 
At present it increments the line buffer by 4KB size or based on new sizes.
When mod_sed is used inside apache with regular files, number of time
reallocation happens are less because single brigade contains the entire
file.

But when mod_sed is used as a reverse proxy then the number of times
sed_response is called is called can be huge which means buffer will be
reallocated many many times compared to filtering text directly.  I noticed
that for 2M characters in single line then mod_sed reallocated stuff in 275
times.

Fix for this is that grow_buffer should grow the sizes at least each time it
is invoked. This reduced the the reallocation to just 9 times for 2M line
size.

Fix is attached.

Bram confirmed that fix worked for him. Here is the comments from Bram.
----------------------------------
For a 2 MB, 3 MB and 4 MB file it seems to be below 26/27 MB of memory.
For a 20 MB file it is around 98 MB of memory
----------------------------------

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to