Мне было интересно, как я могу написать скрипт PHP, который нуждается в больше времени компиляции?
Я хочу сделать это для тестовое задание в расширении OPCache работает.
Позже отредактируйте:
Когда PHP-скрипт загружается, код компилируется в байт-код, и этот байт-код будет интерпретироваться ЦП. Процесс компиляции обычно занимает несколько миллисекунд, но мне нужно сделать это время очень большим, чтобы протестировать расширение OPCache из PHP 5.5. Это расширение должно кэшировать байт-код скрипта, чтобы ему не нужно было снова компилировать скрипт.
Как сказал @PaulCrovella в комментариях, мне нужен был ApacheBench.
С помощью команды ab http://localhost/index.php
по сценарию с 600 000 строк кода, результаты были следующими:
На первом тесте производительности:
Server Software: Apache/2.4.9
Server Hostname: localhost
Server Port: 80
Document Path: /index.php
Document Length: 4927 bytes
Concurrency Level: 1
Time taken for tests: 0.944 seconds
Complete requests: 1
Failed requests: 0
Total transferred: 5116 bytes
HTML transferred: 4927 bytes
Requests per second: 1.06 [#/sec] (mean)
Time per request: 944.054 [ms] (mean)
Time per request: 944.054 [ms] (mean, across all concurrent requests)
Transfer rate: 5.29 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 944 944 0.0 944 944
Waiting: 939 939 0.0 939 939
Total: 944 944 0.0 944 944
На втором контрольном тесте:
Server Software: Apache/2.4.9
Server Hostname: localhost
Server Port: 80
Document Path: /index.php
Document Length: 4927 bytes
Concurrency Level: 1
Time taken for tests: 0.047 seconds
Complete requests: 1
Failed requests: 0
Total transferred: 5116 bytes
HTML transferred: 4927 bytes
Requests per second: 21.28 [#/sec] (mean)
Time per request: 47.003 [ms] (mean)
Time per request: 47.003 [ms] (mean, across all concurrent requests)
Transfer rate: 106.29 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 47 47 0.0 47 47
Waiting: 43 43 0.0 43 43
Total: 47 47 0.0 47 47
Других решений пока нет …