[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Разгрузил скрипт include стало тормозить на 60%
GET
Здравствуйте, объясните такую вещь:

Два варианта сайта:
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...просто тыкая по страницам навигатора результат видно сразу

Спустя 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 в своем первом сообщении.

Спустя 18 минут, 42 секунды (13.01.2012 - 11:42) Nikitian написал(а):
Guest
Посмотрите сколько раз вставится file.txt. Если бы require исполнялся до исполнения сценария, то вставилось бы 1 раз, а будет ...

for($i=0;$i<5;$i++)
require('file.txt');


_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.