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

From: Date: Wed, 24 Jun 2020 06:23:13 +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-227613@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: 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? Previous Comments: ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ [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 ------------------------------------------------------------------------ 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

« previous php.bugs (#227613) next »