![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
theworldcreator |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Есть у меня папочка с модулями. В одном из них назначается многа многа констант, в большинстве других объявляются функции. При тестирование оказалось что файл с константами отнимает чересчур много времени при добавление в скрипт. Потестировал(Xdebug), оказалось что сами по себе define почти ничего не отнимают, отнимает именно подключение, причем чем больше было объявлено констант, тем дольше подключение. Если просто вызвать файл, в котором я для тестирования записал подряд коды всех модулей, это занимает раз в 5 меньше времени, чем подключение его через require_once или include_once. Возникла теория: у PHP не оптимизированная работа с переназначением оперативной памяти, которая была объявлена одним файлом(модулем с константами), а теперь будет использоваться другим(тем что его подключает).
Насколько я прав? Что можно сделать? Пока я сделал крон-скрипт собирающий все модули в один файл для подключения, это чуть чуть ускорило процесс, но не сильно. Заранее спасибо. |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
PHP быстрее инклудит один большой файл, чем кучу мелких. И желательно использовать require, вместо require_once, т.к. первое быстрее.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
theworldcreator |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Уже написал, что я собрал все в один файл и это незначительно ускорило процесс. Процентов 95% от общего времени подключения занимает часть с объявлением констант. Использование require_once медленнее чем require в 1,017 раз - тоже прирост незначительный. Добавлено через 1 минуту и 29 секунд На крон я повесил скрипт чтобы можно было вносить изменения в модули, а основной скрипт содержащий их все обновлялся сам. |
||||
|
|||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 8 Всего: 89 |
А насколько много этих констант? Сколько всего define-ов?
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
theworldcreator |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 362 Регистрация: 25.8.2007 Где: Москва Репутация: 10 Всего: 13 |
Пока 106, но все время растет.
Кстати обнаружил такую вещь: время работы 106-и функций define - 7,27% от общего времени выполнения скрипта, который только и делает что подключает файл в котором ТОЛЬКО эти самые 106 define. НО. Если просто запустить файл с константами, вызов defin-ов займет 9,5% от общего времени выполнения скрипта(помните, он ничего кроме объявления констант не делает). Что делает компьютер в оставшиеся 90,5% времени? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |