Req #79030 [Com]: Upgrade apache2handler's php_apache_sapi_get_request_time to return usec

From: Date: Thu, 28 May 2020 06:08:54 +0000
Subject: Req #79030 [Com]: Upgrade apache2handler's php_apache_sapi_get_request_time to return usec
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-227211@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=79030&edit=1

 ID:                 79030
 Comment by:         herbert at groot dot jebbink dot nl
 Reported by:        herbert at groot dot jebbink dot nl
 Summary:            Upgrade apache2handler's
                     php_apache_sapi_get_request_time to return usec
 Status:             Re-Opened
 Type:               Feature/Change Request
 Package:            *General Issues
 Operating System:   ChromeOS / Crostini / Debian 10
 PHP Version:        7.4.1
 Block user comment: N
 Private report:     N

 New Comment:

What can I do to get this request into 8.0 ?


Previous Comments:
------------------------------------------------------------------------
[2019-12-27 05:32:27] herbert at groot dot jebbink dot nl

> apache2handler on all of my setups is using usec

not for REQUEST_TIME_FLOAT, the 2 numbers you give are both based on $cms_stop_microtime, filled
with 'microtime(TRUE)', not coming from the sapi module.

with phpinfo(); you can see that the fraction part of REQUEST_TIME_FLOAT is 3 digits, not 6 digits.

------------------------------------------------------------------------
[2019-12-27 04:01:10] requinix@php.net

> The SAPI is apache2handler, that one gives indeed msec als precision.
> https://github.com/php/php-src/blob/PHP-7.4.1/sapi/apache2handler/sapi_apache2.c#L360
Also https://apr.apache.org/docs/apr/1.7/group__apr__time.html
which shows the time from apr_time_as_msec is truncated to milliseconds.

------------------------------------------------------------------------
[2019-12-27 03:45:11] bugreports at gmail dot com

> The SAPI is apache2handler, that one gives indeed msec als precision.
> It seems usec is also available

apache2handler on all of my setups is using usec

this is a microtime(TRUE) based runtime measurement from a custom header
0.0245 / 0.0152

the first number is based on $_SERVER['REQUEST_TIME_FLOAT']
the second one is based on microtime(TRUE) as first codeline

--------------------

$cms_stop_microtime = microtime(TRUE);
$runtime_total = round(($cms_stop_microtime - $_SERVER['REQUEST_TIME_FLOAT']), 4);
$tuntime_cms = round(($cms_stop_microtime - $cms_startup_microtime), 4);

--------------------

this configures a additional http header which is also usec
Header set "X-Response-Time" "%D us"

X-Response-Time: D=25726 us

------------------------------------------------------------------------
[2019-12-27 03:26:50] herbert at groot dot jebbink dot nl

The SAPI is apache2handler, that one gives indeed msec als precision.

https://github.com/php/php-src/blob/PHP-7.4.1/sapi/apache2handler/sapi_apache2.c#L360

It seems dat usec is also available 

http://apr.apache.org/docs/apr/1.5/group__apr__time.html

------------------------------------------------------------------------
[2019-12-26 08:23:26] requinix@php.net

REQUEST_TIME_FLOAT is not rounded.

To make sure, what SAPI are you using for the web side? One can define its own means of determining
the request time, and if it does not then PHP falls back to gettimeofday.

https://github.com/php/php-src/blob/PHP-7.4.1/main/SAPI.c#L1083

------------------------------------------------------------------------


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    https://bugs.php.net/bug.php?id=79030


--
Edit this bug report at https://bugs.php.net/bug.php?id=79030&edit=1


Thread (11 messages)

« previous php.bugs (#227211) next »