Req #79030 [ReO->Csd]: Upgrade apache2handler's php_apache_sapi_get_request_time to return usec

From: Date: Wed, 24 Jun 2020 08:02:13 +0000
Subject: Req #79030 [ReO->Csd]: 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-227616@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
 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


Thread (11 messages)

« previous php.bugs (#227616) next »