Intereting Posts

Калькулятор Codeigniter, откуда берутся эти ms?

Я занимаюсь тестированием своего сайта.

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`

Я понимаю следующее:

  • Загрузка базовых классов загрузки (0.0076)
  • Конструктор (0,0007)
  • Индекс (0.0440)

Но откуда же все время?

Я не проводил много бенчмаркинга сайтов с поддержкой CI, но 0.4545 выглядит не очень быстро.

Одна вещь, которая возникает под зонтиком времени выполнения контроллера (но вне ваших собственных определенных тестов), – это автозагрузка всего, что определено в файле config / autoload.php. Если вы загружаете многочисленные библиотеки или модели там, это добавит вам время выполнения контроллера без какой-либо очевидной причины.

Я думаю, что последняя строка вашей индексной функции должна быть

 $this->benchmark->mark('Index_end'); 

Эта опечатка, возможно, вызвала забавные результаты.

Codeigniter автоматически оценивает общее время от запроса до конечного вывода, отправляется в браузер (это общее время выполнения)

Кроме того, когда он собирается вызвать контроллер / метод, который вы указываете (обычно через URL), он отмечает начало этого, а затем, когда этот метод возвращает что-то или отправляет данные на выход, он заканчивает этот тест (это время выполнения контроллера (Главная / Индекс), которую вы видите)