include

clevel

Новичок
include

В настоящее логическая структура index.php следующая:
include("a.php"); //56Kb - 6 функций
include("b.php"); //43Kb - 4 функции

.....

while(..){
switch(..){
case 1: function 1() //<-из a.php, захватывает все функции из a.php,b.php
//выполняется в цикле один раз либо вообще не вызывается
break;
case 2: ....
//вообще не использует include
break;
case 3: function 2() //<-использует часть функций из a.php
//может выполняться один раз, несколько раз или вообще не выполняться
break;
}
}

Дано: при запуске скрипта каждый раз парсятся include-ы 5-6 сотых секунды.
Задача: посредством разбиения на части файлы a.php, b.php и правильного include,include_once
снизить время выполнения скрипта с 0.2 секунды до 0.17-0.15 секунды.
Действия:
1.include("b.php"); переношу из начала файла в case 1 до вызова функции №1.
2.запускаю скрипт, и смотрю время выполнения скрипта - 1 секунда! Закрываю браузер, вновь
открываю его с первоначальным расположением include, скрипт опять выполняется 0.2 секунды.
Вопросы:
1.почему так резко подскакивает скорость выполнения скрипта после помещения include в case,
при этом проверено, что в цикле вызов этого блока происходит всего один раз?
2.какие приемы есть разделения и include,include_once файлов для максимально быстрого выполнения
скрипта?
 

clevel

Новичок
В догонку:
1.убираю include("a.php"); из начала index.php, ставлю include_once("a.php") перед вызовом функции №1 и №3. Время выполнения с 0.230 увеличивается до 0239, счетчик показывает, что функция №1 не выполнялась ни разу, функция №3 была вызвана два раза.
2.выношу часть функций, которые были в начале index.php в отдельный файл c.php, а там, где эти функции вызываются(a.php,b.php), ставлю include_once("c.php").До изменений скорость скрипта - 0.230, после - 0.66 секунды.
Получается, что include_once не оправдывает себя?
 

Barlone

Guest
Время выполнения скрипта гораздо больше зависит от кэширования в файловой системе и параллельно выполняющихся задач, чем от разбиения на инклуды.
 

clevel

Новичок
Время выполнения скрипта гораздо больше зависит от кэширования в файловой системе и параллельно выполняющихся задач, чем от разбиения на инклуды.
хорошо, но почему разница по времени выполнения в 3 сотых секунды во втором случае и аж в 8 десятых в первом? не слишком ли? еще обнаружил, что если из корневого каталога инклюды переместить к какой-нибудь подкаталог, то время выполнения скрипта увеличивается на несколько сотых секунды...
не подумайте, что я жадный до миллисекунд, но все же... после первой оптимизации у меня скрипт с 0.43 начал выполняться 0.2 секунды, а это уще существенный плюс...
 

ANGEL

Guest
Какая разница: 0.1 или 0.05 секунды??? С нашим инетом любая страница грузится по 2-3 секунды... Воду в бочке мутишь тока.
 

clevel

Новичок
Какая разница: 0.1 или 0.05 секунды??? С нашим инетом любая страница грузится по 2-3 секунды... Воду в бочке мутишь тока.
мне не важно, сколько юзер времени будет скачивать страницу, мне важно время ФОРМИРОВАНИЯ страницы! и миллисекунды имеют значение!
 

[VS]

Guest
если милисекунды имеют значение, то ты выбрал неправильный язык. И вообще, очень странно то что ты говоришь.
 

clevel

Новичок
если милисекунды имеют значение, то ты выбрал неправильный язык. И вообще, очень странно то что ты говоришь.
сложный проект с точки зрения логики формирования контента мне легче написать сначала на пхп, а потом, когда есть свободное время и все всех устраивает, перевести это на си...
 

Barlone

Guest
Интересна методика измерений и стабильность результатов. Иногда при двух вызовах подряд одного и того же скрипта время выполнения отличается В НЕСКОЛЬКО РАЗ, а не то что на какие-то сотые доли секунды.
 

clevel

Новичок
Интересна методика измерений и стабильность результатов. Иногда при двух вызовах подряд одного и того же скрипта время выполнения отличается В НЕСКОЛЬКО РАЗ, а не то что на какие-то сотые доли секунды
если два контента принципиально отличаются, то естественно... я делаю замеры одной и той же страницы, иначе чистого результата не добиться...
но посредством оптимизации кода без изменения алгоритма мне уже удалось В 2 РАЗА увеличить скорость обработки данных и уменьшить, соответственно, время формирования контента... может с include такая оптимизация возможна+повышение читабельности кода...
 
Сверху