httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chris Knight <Christopher.D.Kni...@nasa.gov>
Subject Re: Apache gprof profiling
Date Fri, 07 Nov 2003 20:29:54 GMT
Chris Knight wrote:

> Hi all, I found some mention of profiling Apache with gprof via 
> google. I tried the following:
>
> % setenv CFLAGS '-pg -DGPROF -g'
> % ./configure [my configure flags]
> % make; make install; cd $PREFIX
> [alter the conf file to set the MaxRequestsPerChild to 1]
> % bin/httpd -X
> [make a request and close the connection, which should cause httpd to 
> terminate normally.]
>
> I should end up with a "gmon.out" file that I can then feed to gprof, 
> but I'm not. Is there a step I'm missing and/or is this possible? For 
> that matter, is there any official documentation regarding profiling?
>
> (In reality I want to profile a particular module but I thought it 
> would be interesting to profile all of Apache's internals as well to 
> get a complete picture.)

After Jeff graciously pointed out that some gprof changes had occurred 
in 2.1-dev, I decided to give it a try and sure enough I could get a 
gmon.out file. Then, after doing a bunch of diffs, I came to the 
conclusion that the code defguarded by NO_USE_SIGACTION was removed in 
2.1 and I tried defining that, sure enough it works now. Huzzah! (Just 
thought I'd report in so someone else trying to profile 2.0 will not 
stumble across this problem.)

So the way to get profiling in 2.0.48:

% setenv CFLAGS '-pg -DGPROF -g -DNO_USE_SIGACTION'
% ./configure [my configure flags]
% make; make install; cd $PREFIX
[alter the conf file to set the MaxRequestsPerChild to 1]
% bin/httpd -X
[make a request and close the connection]

I had a suspicion it had something to do with signals (since you don't 
get a gmon.out unless the process dies normally). Anyways, fixed a bug 
in the code along the way. :^)


Mime
View raw message