Общие API Spreadsheet_Excel_Reader и разница в скорости прямого доступа (PHP) - PullRequest
2 голосов
/ 23 ноября 2011

Оба следующих элемента находятся во вложенных циклах, первый занимает 178 секунд, чтобы пройти через цикл, а второй занимает 1,25 секунды.Внутренне они оба делают одно и то же.

$data->sheets[0]['cells'][$i][$j+1];

против

$data->val($i, $j+1);

Функция val выполняет (наряду с другими проверками следующее):

return $this->sheets[$sheet]['cells'][$row][$col];

Что может быть причиной этого несоответствия?

1 Ответ

0 голосов
/ 26 ноября 2011

Вызовы методов имеют больше накладных расходов, чем доступ к свойствам, но я не думаю, что это вызовет такое существенное расхождение. Я бы предложил профилировать оба случая с помощью чего-то вроде Xdebug, чтобы увидеть узкое место. http://xdebug.org/docs/profiler

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...