diff options
Diffstat (limited to 'sapi/cgi/cgi_main.c')
-rw-r--r-- | sapi/cgi/cgi_main.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c index 4c78fcafec..4f3d5040e1 100644 --- a/sapi/cgi/cgi_main.c +++ b/sapi/cgi/cgi_main.c @@ -154,6 +154,7 @@ static const opt_struct OPTIONS[] = { {'?', 0, "usage"},/* help alias (both '?' and 'usage') */ {'v', 0, "version"}, {'z', 1, "zend-extension"}, + {'W', 1, "warmup"}, {'T', 1, "timing"}, {'-', 0, NULL} /* end of args */ }; @@ -1754,6 +1755,7 @@ int main(int argc, char *argv[]) int fcgi_fd = 0; fcgi_request *request = NULL; int repeats = 1; + int warmup_repeats = 0; int benchmark = 0; #if HAVE_GETTIMEOFDAY struct timeval start, end; @@ -2103,6 +2105,9 @@ consult the installation file that came with this distribution, or visit \n\ time(&start); #endif break; + case 'W': + warmup_repeats = atoi(php_optarg); + break; case 'h': case '?': if (request) { @@ -2516,12 +2521,24 @@ fastcgi_request_done: if (!fastcgi) { if (benchmark) { - repeats--; - if (repeats > 0) { - script_file = NULL; - php_optind = orig_optind; - php_optarg = orig_optarg; + if (warmup_repeats) { + warmup_repeats--; + if (!warmup_repeats) { +#ifdef HAVE_GETTIMEOFDAY + gettimeofday(&start, NULL); +#else + time(&start); +#endif + } continue; + } else { + repeats--; + if (repeats > 0) { + script_file = NULL; + php_optind = orig_optind; + php_optarg = orig_optarg; + continue; + } } } break; |