Edit report at https://bugs.php.net/bug.php?id=79030&edit=1
ID: 79030
User updated 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
+Status: Closed
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:
Pull request with the change was accepted for the PHP 8 branch at github
Previous Comments:
------------------------------------------------------------------------
[2020-06-24 06:23:13] herbert at groot dot jebbink dot nl
I have it localy working by changing line 369 of file php-src/sapi/apache2handler/sapi_apache2.c
(PHP 8 master branch at github)
return ((double) apr_time_as_msec(ctx->r->request_time)) / 1000.0;
into
return ((double) ctx->r->request_time) / 1000000.0;
and now there is never a negative result anymore in the test script as given in my original post at
the top of this page.
also $_SERVER['REQUEST_TIME_FLOAT'] & microtime(true) have now the same precision.
echo $_SERVER['REQUEST_TIME_FLOAT'];
echo '<br>';
echo microtime(true);
It would be great if someone can include this in the PHP 8 branch, or can I send the git diff patch
to someone?
------------------------------------------------------------------------
[2020-05-28 06:08:54] herbert at groot dot jebbink dot nl
What can I do to get this request into 8.0 ?
------------------------------------------------------------------------
[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
------------------------------------------------------------------------
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