perl-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Moyer <f...@redhotpenguin.com>
Subject Re: Proposal for CPAN module: Apache2::RequestRec::Time
Date Thu, 13 Aug 2009 19:46:50 GMT
On Thu, Aug 13, 2009 at 12:21 PM, Jan Pazdziora<jpz-mlmp@adelton.com> wrote:
> related to my previous post about getting to microsecond values
> from APR/mod_perl, I propose to submit to CPAN a module
> Apache2::RequestRec::Time which will add four functions (methods)
> to Apache2::RequestRec: request_time_hires, request_duration,
> request_duration_microseconds, and request_duration_hires.

I can't speak for the whole dev team, but I don't see any reason
offhand why these methods couldn't be included in the core since they
are RequestRec based.  This code is based off of the C api so it makes
a bit more sense to me to have it in core than as an external module.

>From my limited understanding of the mod_perl XS api this looks like
great start!

>
> My main goal is to be able to get value equivalent to custom
> log's %D (time taken to serve the request, in microseconds) from
> mod_perl, which request_duration_microseconds will do, and I wanted
> the set of methods to be a big more complete in case people wanted
> similar yet not exact functionality. Initially, I also planned to
> have request_time_microseconds but I hit integer overflows as epoch
> in microseconds is fairly big number.
>
> I'd appreciate any comments about suitability of such module and/or
> its name, purpose, or implementation (for code, see below) before
> I do the CPAN submission. Of course, the CPAN distribution will be
> complete with Makefile.PL and test.
>
> Thank you.
>
> For the reference, my planned XS code is:
>
> #include <mod_perl.h>
>
> typedef request_rec *Apache2__RequestRec;
>
> MODULE = Apache2::RequestRec::Time      PACKAGE = Apache2::RequestRec   PREFIX =
mpxs_Apache2__RequestRec_
>
> double
> mpxs_Apache2__RequestRec_request_time_hires(r)
>                Apache2::RequestRec r
>        CODE:
>                RETVAL = (double)(r->request_time) / APR_USEC_PER_SEC;
>        OUTPUT:
>                RETVAL
>
> long
> mpxs_Apache2__RequestRec_request_duration(r)
>                Apache2::RequestRec r
>        CODE:
>                apr_time_t duration = apr_time_now() - r->request_time;
>                RETVAL = apr_time_sec(duration);
>        OUTPUT:
>                RETVAL
>
> double
> mpxs_Apache2__RequestRec_request_duration_microseconds(r)
>                Apache2::RequestRec r
>        CODE:
>                RETVAL = (double)(apr_time_now() - r->request_time);
>        OUTPUT:
>                RETVAL
>
> double
> mpxs_Apache2__RequestRec_request_duration_hires(r)
>                Apache2::RequestRec r
>        CODE:
>                RETVAL = (double)(apr_time_now() - r->request_time) / APR_USEC_PER_SEC;
>        OUTPUT:
>                RETVAL
>
> --
> Jan Pazdziora
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
> For additional commands, e-mail: dev-help@perl.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Mime
View raw message