Here is some more performance results based on Ruediger's suggestion :

-------------------------------------------------------------------------
test2.html : 500 substitution s/hello/hi/g.
Requests Per Second (RPS) as measured by ab for s/hello/hi/ substitution.
Enabled CPUs : 1
testname       Concur  MaxReq  mod_sed    mod_line_edit   mod_substitute  
mod_substitute(with n flag)
                                RPS         RPS               RPS
test2.html       100   100000   1278         404              1130             
1531

Summary :
On simple string substitution (s/hello/hi/) mod_sed perform better than
mod_substitue but with flag [n] mod_substitute performed better than
mod_sed.
-------------------------------------------------------------------------
Test case summary : pattern capture
Regular expression used : OutputSed 
's/.*\(one\).*\(two\).*\(three\).*\(four\).*\(five\).*/\5 \4 \3 \2 \1/'
                        : Substitute 
"s/.*(one).*(two).*(three).*(four).*(five).*/$5 $4 $3 $2 $1/"
String : hello one 1 two 2 three 3 four 4 five 5.
Enabled CPUs : 4
test12.html : 500 lines containing the above string (Result in 500 
substitution).
testname       Concur  MaxReq  mod_sed    mod_substitute  
                                RPS         RPS          
test12.html     125    100000   1322        3230
Summary :
With pattern capture, mod_substitute performed much better than mod_sed.
-------------------------------------------------------------------------
Test case summary : test for simple regular expression.
Regular expression used : OutputSed 's/.*one.*two/1 2/'
                        : Substitute "s/.*one.*two/1 2/"
String : hello one 1 two 2 three 3 four 4 five 5.
Enabled CPUs : 4
test22.html : 500 lines containing the above string (Result in 500 
substitution).
testname       Concur  MaxReq  mod_sed    mod_substitute  
                                RPS         RPS          
test22.html     400    400000   2013        1689
Summary :
With ordinary regular expression, mod_sed performed better than
mod_substitute.
-------------------------------------------------------------------------

mod_substitute (what is available in 2.2.8 is leaking memory) so the above
performance results must be repeated with new mod_substitute from trunk (to
have better comparison).

Regards,
Basant.


On Thu, Apr 10, 2008 at 01:44:53PM +0200, Ruediger Pluem wrote:
> On 10.04.2008 13:27, Jim Jagielski wrote:
>>
>> On Apr 9, 2008, at 5:09 PM, Basant Kukreja wrote:
>>>> just that, too.  Any performance comparisons with its competitors?
>>> Some quick performance comparison results between mod_sed, mod_line_edit 
>>> and
>>> mod_substitute.
>>>
>>> Search/Replace string : s/hello/hi/
>>> test0.html : No matches, so no substitute.
>>> test.html  :  1 comparision/substitute
>>> test2.html : 500 comparision/substitute
>>>
>>> Performance data was generated with 200 clients for 100000 requests (for 
>>> worker
>>> mpm).
>>> $ ab -c 200 -n 100000 <http-uri>
>>>
>>> Requests Per Second (RPS) as measured by ab for s/hello/hi/ substitution.
>>>                 mod_sed              mod_line_edit           
>>> mod_substitute
>>> test0.html        3263                   3206                   3129
>>> test.html         3229                   3213                   3197
>>> test2.html        1278                   404                    1130
>>>
>>> Note that mod_sed performs better than either mod_line_edit or 
>>> mod_substitute.
>>
>> Interesting... What versions of each did you test?
>
> Would be interesting to know what happens speed wise if you use the n flag
> for mod_substitute to use strmatch instead of a regular expression.
> And depending on the version you used it would be interesting what happens
> if you use the q flag (applys only to trunk).
> Furthermore from a first glance of mod_sed I would guess that it runs into
> trouble with large static files. So could you test mod_sed with one of
> the simple cases above and a 3 GB file and monitor httpd's memory consumption
> in comparison to mod_substitute?
>
> Regards
>
> RĂ¼diger
>
>

Reply via email to