Il 24/05/2011 18.19, Torsten Förtsch ha scritto:
On Tuesday, May 24, 2011 17:30:33 marco wrote:
I want to get the response time that Apache spends to serve a request
(from post-read-request phase to the response phase).
PerlPostReadRequestHandler "sub {                \
   use Time::HiRes();                             \
   use Apache2::RequestUtil();                    \
   $_[0]->pnotes->{starttime}=Time::HiRes::time;  \
   0;                                             \
}"

Then in the PerlResponseHandler you can do:

   $elapsed=Time::HiRes::time-$r->pnotes->{starttime};

Torsten Förtsch

Hi,
I follow your suggest using Time::HiRes but I have an error when I try to start apache. Here's my code(it is only an example): This is the script that will be executed as response handler, but it doesn't work because doesn't print the time.
*use strict;
  use warnings;

  use Time::HiRes qw(gettimeofday tv_interval);

  use Apache2::RequestRec ();
  use Apache2::RequestIO ();

  use Apache2::Const -compile => 'OK';

  sub handler{
    my $r = shift;
    my $start_time = [ gettimeofday ];
    my $end_time = [ gettimeofday ];
    my $elapsed = tv_interval($start_time,$end_time);
    $r->send_http_header('text/html');
    $r->print ($elapsed);
    return Apache2::Const::OK;
   }
   1;
*
In httpd.conf file I have:

PerlPostReadRequestHandler Dir::touch      #this script is well executed
PerlResponseHandler Dir::timediff #this handler (below) is not executed!!!!!!!!!!!!!!!!!!!

why it doesn't work?
Can you help me,please?
Thanks for your answers!




Reply via email to