Два варианта сайта:
1. Там скрипты цельные, не разбитые инклюдом
2. Для читабельности (и ускорения т.к. некоторые блоки повторялись) разбил скрипты инклюдом по логическому принципу т.е. блок сортировки, блок обработки и т.д.
Для второго варианта в начальном index.php определил константу:
define('CONST', $_SERVER['DOCUMENT_ROOT'].'/mysite/');
и соответственно все инклюды стали выглядить типа:
include CONST.'folder/timer.class.php';
т.е. использовать абсолютный путь.
Для сравнения по скорости работы двух вариантов добавил в таблицу вывода инфы (при максимуме загрузки фильтров) 10000 строк
Результаты:
Новый вариант использующий $_SERVER['DOCUMENT_ROOT'] работает медленнее на 40%!
время его обработки 0,14-0,17 сек. против старого 0,10-0,12 сек.
Хочу спросить почему так?
Спустя 18 минут, 46 секунд (13.01.2012 - 06:52) Nikitian написал(а):
Мега-нагруженная дисковая подсистема. Если проверяли на локальном компьютере, то факторов, влияющих на время работы скрипта может быть 100500. Да и если не на локальном - не меньше. Прогоняли надеюсь тест не меньше миллиона раз, а это показали апроксимированные результаты?
Спустя 5 минут, 11 секунд (13.01.2012 - 06:57) GET написал(а):
Nikitian
Да нет оба варианта находятся рядом используют одну и ту же БД, КЭШ тоже примерно одинаковый прогонял в двух вкладках IE 8...просто тыкая по страницам навигатора результат видно сразу
Да нет оба варианта находятся рядом используют одну и ту же БД, КЭШ тоже примерно одинаковый прогонял в двух вкладках IE 8...просто тыкая по страницам навигатора результат видно сразу
Спустя 1 час, 35 минут, 3 секунды (13.01.2012 - 08:32) Guest написал(а):
Вместо include используй require.
Спустя 4 минуты, 45 секунд (13.01.2012 - 08:37) Nikitian написал(а):
Цитата (Guest @ 13.01.2012 - 08:32) |
Вместо include используй require. |
Это одна и та же языковая конструкция. Различие только в реакции на отсутствие подключаемого скрипта.
Спустя 39 секунд (13.01.2012 - 08:37) GET написал(а):
Guest
не думаю, что это на скорости отразиться
не думаю, что это на скорости отразиться
Спустя 2 часа, 46 минут, 12 секунд (13.01.2012 - 11:23) Guest написал(а):
Конструкция include предназначена для включения файлов в код сценария PHP во время исполнения сценария PHP.
Конструкция require позволяет включать файлы в PHP сценарий до выполнения сценария PHP.
Если при использовнии require время выполнения уменьшится (рельное - нет), то прав Nikitian в своем первом сообщении.
Конструкция require позволяет включать файлы в PHP сценарий до выполнения сценария PHP.
Если при использовнии require время выполнения уменьшится (рельное - нет), то прав Nikitian в своем первом сообщении.
Спустя 18 минут, 42 секунды (13.01.2012 - 11:42) Nikitian написал(а):
Guest
Посмотрите сколько раз вставится file.txt. Если бы require исполнялся до исполнения сценария, то вставилось бы 1 раз, а будет ...
Посмотрите сколько раз вставится file.txt. Если бы require исполнялся до исполнения сценария, то вставилось бы 1 раз, а будет ...
for($i=0;$i<5;$i++)
require('file.txt');
_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.