Thanks for the update Paul.

Could you take a look at the docs and suggest how they could be improved
so others don't hit the same problem?

A description of changes, like an extra paragraph, would be great.
A patch would be awesome! :)

Tim.

On Wed, Jan 23, 2013 at 05:23:44AM -0800, Paul Silevitch wrote:
>    Turns out this is easy to explain.  We were trying to load the profiler 
> conditionally based on an env
>    variable and were 'requiring' it before we preloaded the modules with 
> 'use'.  Use wraps the calls in a
>    BEGIN block which means it actually got called before the require which 
> isn't good for the profiler.
>     Wrapping the require in a BEGIN block solved the problem.
>    Thanks,
> 
>    Paul
> 
>    On Tuesday, January 15, 2013 12:53:15 PM UTC-5, Paul Silevitch wrote:
> 
>      I figured out the solution to the missing line by line profiling.  We 
> preload our modules in a startup
>      script.  If I skip the preload when running Devel::NYTProf, line by line 
> profiling appears.  I'm
>      curious if someone knows why.  I'm using apache with prefork MPM so I 
> imagine the issue is fork
>      related.
>      Thanks,
>      Paul
> 
>      On Friday, August 19, 2011 4:56:43 AM UTC-4, Tim.Bunce wrote:
> 
>        On Wed, Aug 17, 2011 at 01:49:51PM -0700, Brian Brandes wrote:
>        >
>        > To give some background, I'm trying to benchmark a perl web
>        > application running on Apache, Perl 5.8.9.  Naturally, I'm using the
>        > Devel::NYTProf::Apache package for this.  In the simplest of setups,
>        > when I only put "PerlModule Devel::NYTProf::Apache" in httpd.conf.  I
>        > then run httdperf to slam my webserver, and I see plenty of files 
> that
>        > match the default format of /tmp/nytprof.$parent.out.$$.  This is 
> fine
>        > and dandy, since each of my apache processes spawns many workers, but
>        > the problem I'm running into is that when I run nytperfhtml on any of
>        > these, I'm experiencing a couple problems, one the line by line
>        > profiling isn't working out, numerous lines are skipped and the
>        > statement count is very off.
> 
>        I don't know what that would be.
> 
>        > And secondly, I'm unable to see any of
>        > the files that are being run via perl -e.
> 
>        > In an attempt to solve the above problem, I wanted to try out using
>        > the settings optimize=0:use_db_sub=1.  So, I added "PerlSetEnv 
> NYTPROF
>        > optimize=0:use_db_sub=1" to httpd.conf.  I restart apache, slam my
>        > webserver, but now, despite not supplying any output file location,
>        > the files now are output to my current working directory (not /tmp/).
> 
>        The docs say:
> 
>            If the NYTPROF environment variable isn't set at the time
>            Devel::NYTProf::Apache is loaded then Devel::NYTProf::Apache will 
> issue
>            a warning and default it to:
> 
>                file=/tmp/nytprof.$$.out
> 
>        (The docs ought to mention that the addpid an endatexit options are 
> also
>        enabled, but directly, not via the NYTPROF environment variable.)
> 
>        So you want to use
> 
>                file=/tmp/nytprof.$$.out:optimize=0:use_db_sub=1
> 
>        > Furthermore, they no longer have their worker process IDs.
> 
>        Try
> 
>                file=/tmp/nytprof.$$.out:optimize=0:use_db_sub=1:addpid=1
> 
>        > Essentially what I'm trying to figure out is if there a way to 
> specify
>        > the worker process id within the file portion of the NYTPROF
>        > environment variable.  I was hoping specifying the file such as
>        > "PerlSetEnv NYTPROF optimize=0:use_db_sub=1:file=/nytprof/nytprof.
>        > $parent.out.$$" would work, but that only literally places the dollar
>        > signs in the file name.
> 
>        You could just use PerlPassEnv NYTPROF and set the NYTPROF env var
>        yourself before starting apache.
> 
>        > So, if anyone knows how to solve the specifying the worker ID 
> problem,
>        > I'd most appreciate it.  If you have another solution for getting the
>        > nytperfhtml report generation to include the perl -e files (outside 
> of
>        > upgrading perl, though I may wind up doing that), I'd much appreciate
>        > it.
> 
>        See 
> [1]http://search.cpan.org/~timb/Devel-NYTProf-4.06/lib/Devel/NYTProf.pm#PROFILING
>        specifically the PERL5OPT env var. Maybe best to set it within the
>        apache worker process so as not to interfere with the parent.
> 
>        Tim.
> 
>    --
>    --
>    You've received this message because you are subscribed to
>    the Devel::NYTProf Development User group.
> 
>    Group hosted at: [2]http://groups.google.com/group/develnytprof-dev
>    Project hosted at: [3]http://perl-devel-nytprof.googlecode.com
>    CPAN distribution: [4]http://search.cpan.org/dist/Devel-NYTProf
> 
>    To post, email: [email protected]
>    To unsubscribe, email: [email protected]
> 
> 
> 
> References
> 
>    Visible links
>    1. 
> http://search.cpan.org/~timb/Devel-NYTProf-4.06/lib/Devel/NYTProf.pm#PROFILING
>    2. http://groups.google.com/group/develnytprof-dev
>    3. http://perl-devel-nytprof.googlecode.com/
>    4. http://search.cpan.org/dist/Devel-NYTProf

-- 
-- 
You've received this message because you are subscribed to
the Devel::NYTProf Development User group.

Group hosted at:  http://groups.google.com/group/develnytprof-dev
Project hosted at:  http://perl-devel-nytprof.googlecode.com
CPAN distribution:  http://search.cpan.org/dist/Devel-NYTProf

To post, email:  [email protected]
To unsubscribe, email:  [email protected]


Reply via email to