http://qs321.pair.com?node_id=11113909


in reply to How to use Devel::NYTProf on Apache

Hi, I am not a profiling expert and ceased to be an Apache expert about 15 years ago, but I'm not sure your approach will work, depending on where in your stack you are calling it.

From the doc on threaded/multiprocess programs:

Devel::NYTProf is not currently thread safe or multiplicity safe. If you'd be interested in helping to fix that then please get in touch with us. Meanwhile, profiling is disabled when a thread is created, and NYTProf tries to ignore any activity from perl interpreters other than the first one that loaded it.

... but on the other hand, the doc for `endatexit` says:

Sets the PERL_EXIT_DESTRUCT_END flag in the PL_exit_flags of the perl interpreter. This makes perl run END blocks in perl_destruct() instead of perl_run() which may help in cases, like Apache, where perl is embedded but perl_run() isn't called.

I don't know why your output files are disappearing, but note that the default output location for the files is the current directory.

Hope this helps!


The way forward always starts with a minimal test.
  • Comment on Re: How to use Devel::NYTProf on Apache

Replies are listed 'Best First'.
Re^2: How to use Devel::NYTProf on Apache
by feumw (Sexton) on Mar 09, 2020 at 06:08 UTC
    I once had a Teamviewer Session with someone who explained me how this works. Unfortunately bad habits lead me to not documenting it. I haven't placed any Flags/Markers in my Scripts to start/stop profiling. I want to profile a CMS and the last time we did this by starting the Webserver, doing a single click and stopping webserver after. With stopping the profiling ends aswell. I don't want to dive to deep. The last time I got a hint that 80% loading time was SQL so I could took a more detailed look on it. I have to see what I can do. Anyway, thank you, I will probably take a look on the docs again if I can't find an easy quick way to rudimentory profile the problems.