Есть цикл Код (PHP): foreach ($employees as $employee) { for($i = 1; $i <= $this->ts_days_count; $i++) { foreach ($timesheet as $ts) { if((int)$i < 10) { $i = '0'.(int)$i; } $date->setDateFromStr($ts->getProperty('workdate')); $date1->setDate($date->getYear(), $date->getMonth(), $i); if($date->getDateStr() === $date1->getDateStr() && $employee->getProperty('id') == $ts->getProperty('employeeid') && $ts->getProperty('hourscount') != '0') { echo $ts->getProperty('hourscount'); $days_count += 1; if($i < 16) { $first_h_count += (int)$ts->getProperty('hourscount'); } else { $second_h_count += (int)$ts->getProperty('hourscount'); } } } If($i == 15) { echo $first_h_count; } If($i == $this->ts_days_count) { echo $second_h_count; } } } это сокращенный вариант, вообще он пдф формирует, а проблема вот в чем, каждая итерация цикла foreach ($employees as $employee) занимает намного больше времени чем предыдущая, значения $this->ts_days_count и $timesheet определены вне цикла, и в цикле их значение не меняется. вот время выполнения: 1 -> 0,7 2 -> 1,4 3 -> 2,3 4 -> 3,5 5 ->4,4 6 -> 20,4 подскажите в чем причина может быть?
Локализуйте проблему. Разбейте цикл на блоки. Засекайте время работы каждого блока, а не всей итерации. Ищите уязвимое место.
в общем tcpdf мне все тормозит, если без формирования пдф цикл прогоняю каждая итерация с одинаковым временем выполняется 0,06.