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();
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php