mirror of
https://github.com/php/php-src.git
synced 2025-01-11 05:24:49 +08:00
Added CGI SAPI -T option, to measure execution time of script repeated several times.
This commit is contained in:
parent
2a12bef547
commit
896cdeee7a
@ -137,6 +137,7 @@ static const opt_struct OPTIONS[] = {
|
||||
{'?', 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 @@ static void php_cgi_usage(char *argv0)
|
||||
" -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 @@ int main(int argc, char *argv[])
|
||||
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 @@ consult the installation file that came with this distribution, or visit \n\
|
||||
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 @@ fastcgi_request_done:
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ fastcgi_request_done:
|
||||
} 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();
|
||||
|
Loading…
Reference in New Issue
Block a user