Началось с всё с теста сравнения быстродействия yii3 с другими фреймворками.
Я обнаружил непонятные задержки с ответом и в следствии этого появился такой простой тест (на самом деле аналогичная конструкция используется в логере yii3).
Код: Выделить всё
<?php
$time_start = microtime(true);
// Code
$time_end = microtime(true);
\register_shutdown_function(function () {
$time_finish = microtime(true);
$time1 = round($GLOBALS['time_start'] - $_SERVER["REQUEST_TIME_FLOAT"], 3) * 1000;
$time2 = round($GLOBALS['time_end'] - $GLOBALS['time_start'], 3) * 1000;
$time3 = round($time_finish - $GLOBALS['time_end'], 3) * 1000;
$time = round($time_finish - $_SERVER["REQUEST_TIME_FLOAT"], 3) * 1000;
$timer = round($time_finish - $GLOBALS['time_start'], 3) * 1000;
echo "\n$timer = $time2 + $time3";
\register_shutdown_function(function () {
$time_finish = microtime(true);
$time1 = round($GLOBALS['time_start'] - $_SERVER["REQUEST_TIME_FLOAT"], 3) * 1000;
$time2 = round($GLOBALS['time_end'] - $GLOBALS['time_start'], 3) * 1000;
$time3 = round($time_finish - $GLOBALS['time_end'], 3) * 1000;
$time = round($time_finish - $_SERVER["REQUEST_TIME_FLOAT"], 3) * 1000;
$timer = round($time_finish - $GLOBALS['time_start'], 3) * 1000;
echo "\n$timer = $time2 + $time3";
});
});
Код: Выделить всё
16 = 0 + 16
30 = 0 + 30
Я некоторое время поковырялся и случайно заметил следующее:
Если добавить в конец скрипта вызов функции "exit();", то мы получаем результат:
Код: Выделить всё
0 = 0 + 0
0 = 0 + 0
Добавил exit в конец index.php у приложения "github.com/yiisoft/yii-demo". Время генерации страницы сократилось со 100 до 50 мс (значения средние).
Добавил exit в конец index.php у приложения "github.com/yiisoft/yii2-app-basic". Время генерации страницы сократилось с 90 до 40 мс (значения средние).
Кстати тест показал что yii2-app-basic на 20% быстрее yii-demo (оба в prod режиме без каких либо модификаций) и это не радует.
Собственно предложение: добавить на всякий случай в конец index.php строчку
Код: Выделить всё
exit();