Я занимаюсь тестированием своего сайта.
class Home extends Controller { function Home() { parent::Controller(); $this->benchmark->mark('Constructor_start'); $this->output->enable_profiler(TRUE); $this->load->library ('MasterPage'); $this->benchmark->mark('Constructor_end'); } function index() { $this->benchmark->mark('Index_start'); $this->masterpage->setMasterPage('master/home'); $this->masterpage->addContent('home/index', 'page'); $this->masterpage->show(); $this->benchmark->mark('Index_end'); } }
Вот результаты:
Базовые классы загрузки: 0.0076
Конструктор: 0,0007
Индекс: 0,0440
Время выполнения контроллера (Главная / Индекс): 0.4467
Общее время выполнения: 0,4545`
Я понимаю следующее:
Но откуда же все время?
Я не проводил много бенчмаркинга сайтов с поддержкой CI, но 0.4545 выглядит не очень быстро.
Одна вещь, которая возникает под зонтиком времени выполнения контроллера (но вне ваших собственных определенных тестов), – это автозагрузка всего, что определено в файле config / autoload.php. Если вы загружаете многочисленные библиотеки или модели там, это добавит вам время выполнения контроллера без какой-либо очевидной причины.
Я думаю, что последняя строка вашей индексной функции должна быть
$this->benchmark->mark('Index_end');
Эта опечатка, возможно, вызвала забавные результаты.
Codeigniter автоматически оценивает общее время от запроса до конечного вывода, отправляется в браузер (это общее время выполнения)
Кроме того, когда он собирается вызвать контроллер / метод, который вы указываете (обычно через URL), он отмечает начало этого, а затем, когда этот метод возвращает что-то или отправляет данные на выход, он заканчивает этот тест (это время выполнения контроллера (Главная / Индекс), которую вы видите)