Re: cvs: php-src /sapi/cgi cgi_main.c
| From: | Jani Taskinen | Date: | Thu, 25 Oct 2007 10:04:21 +0000 |
| Subject: | Re: cvs: php-src /sapi/cgi cgi_main.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-46762@lists.php.net to get a copy of this message | ||
And you're sure gettimeofday() is available always?
Hint: It isn't. :)
--Jani
On Thu, 2007-10-25 at 05:39 +0000, Dmitry Stogov wrote:
> dmitry Thu Oct 25 05:39:24 2007 UTC
>
> Modified files:
> /php-src/sapi/cgi cgi_main.c
> Log:
> Added CGI SAPI -T option, to measure execution time of script repeated several times.
>
>
>
> http://cvs.php.net/viewvc.cgi/php-src/sapi/cgi/cgi_main.c?r1=1.340&r2=1.341&diff_format=u
> Index: php-src/sapi/cgi/cgi_main.c
> diff -u php-src/sapi/cgi/cgi_main.c:1.340 php-src/sapi/cgi/cgi_main.c:1.341
> --- php-src/sapi/cgi/cgi_main.c:1.340 Mon Oct 1 12:32:39 2007
> +++ php-src/sapi/cgi/cgi_main.c Thu Oct 25 05:39:24 2007
> @@ -21,7 +21,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: cgi_main.c,v 1.340 2007/10/01 12:32:39 jani Exp $ */
> +/* $Id: cgi_main.c,v 1.341 2007/10/25 05:39:24 dmitry Exp $ */
>
> #include "php.h"
> #include "php_globals.h"
> @@ -137,6 +137,7 @@
> {'?', 0, "usage"},/* help alias (both '?' and
> 'usage') */
> {'v', 0, "version"},
> {'z', 1, "zend-extension"},
> + {'T', 1, "timing"},
> {'-', 0, NULL} /* end of args */
> };
>
> @@ -767,7 +768,8 @@
> " -s Display colour syntax highlighted source.\n"
> " -v Version number\n"
> " -w Display source with stripped comments and whitespace.\n"
> - " -z <file> Load Zend extension <file>.\n",
> + " -z <file> Load Zend extension <file>.\n"
> + " -T <count> Measure execution time of script repeated <count>
> times.\n",
> prog, prog);
> }
> /* }}} */
> @@ -1266,6 +1268,9 @@
> char *bindpath = NULL;
> int fcgi_fd = 0;
> fcgi_request request;
> + int repeats = 1;
> + int benchmark = 0;
> + struct timeval start, end;
> #ifndef PHP_WIN32
> int status = 0;
> #endif
> @@ -1543,6 +1548,11 @@
> zend_first_try {
> while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 1, 2)) != -1)
> {
> switch (c) {
> + case 'T':
> + benchmark = 1;
> + repeats = atoi(php_optarg);
> + gettimeofday(&start, NULL);
> + break;
> case 'h':
> case '?':
> fcgi_shutdown();
> @@ -1912,8 +1922,18 @@
> }
> }
>
> - if (!fastcgi)
> + if (!fastcgi) {
> + if (benchmark) {
> + repeats--;
> + if (repeats > 0) {
> + script_file = NULL;
> + php_optind = orig_optind;
> + php_optarg = orig_optarg;
> + continue;
> + }
> + }
> break;
> + }
>
> /* only fastcgi will get here */
> requests++;
> @@ -1943,6 +1963,21 @@
> } zend_end_try();
>
> out:
> + if (benchmark) {
> + int sec;
> + int usec;
> +
> + gettimeofday(&end, NULL);
> + sec = (int)(end.tv_sec - start.tv_sec);
> + if (end.tv_usec >= start.tv_usec) {
> + usec = (int)(end.tv_usec - start.tv_usec);
> + } else {
> + sec -= 1;
> + usec = (int)(end.tv_usec + 1000000 - start.tv_usec);
> + }
> + fprintf(stderr, "\nElapsed time: %d.%06d sec\n", sec, usec);
> + }
> +
> SG(server_context) = NULL;
> php_module_shutdown(TSRMLS_C);
> sapi_shutdown();
>
--
Patches/Donations: http://pecl.php.net/~jani/