Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> require_once 
:(
    Опции темы
theworldcreator
Дата 2.1.2009, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Есть у меня папочка с модулями. В одном из них назначается многа многа констант, в большинстве других объявляются функции. При тестирование оказалось что файл с константами отнимает чересчур много времени при добавление в скрипт. Потестировал(Xdebug), оказалось что сами по себе define почти ничего не отнимают, отнимает именно подключение, причем чем больше было объявлено констант, тем дольше подключение. Если просто вызвать файл, в котором я для тестирования записал подряд коды всех модулей, это занимает раз в 5 меньше времени, чем подключение его через require_once или include_once. Возникла теория: у PHP не оптимизированная работа с переназначением оперативной памяти, которая была объявлена одним файлом(модулем с константами), а теперь будет использоваться другим(тем что его подключает).
Насколько я прав? Что можно сделать? Пока я сделал крон-скрипт собирающий все модули в один файл для подключения, это чуть чуть ускорило процесс, но не сильно.
Заранее спасибо.
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 2.1.2009, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



PHP быстрее инклудит один большой файл, чем кучу мелких. И желательно использовать require, вместо require_once, т.к. первое быстрее.


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
theworldcreator
Дата 2.1.2009, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Цитата

Пока я сделал крон-скрипт собирающий все модули в один файл для подключения, это чуть чуть ускорило процесс, но не сильно.

Цитата

PHP быстрее инклудит один большой файл, чем кучу мелких.

Уже написал, что я собрал все в один файл и это незначительно ускорило процесс. Процентов 95% от общего времени подключения занимает часть с объявлением констант. Использование require_once медленнее чем require в 1,017 раз - тоже прирост незначительный.

Добавлено через 1 минуту и 29 секунд
На крон я повесил скрипт чтобы можно было вносить изменения в модули, а основной скрипт содержащий их все обновлялся сам.
PM MAIL WWW ICQ   Вверх
Sunvas
Дата 2.1.2009, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 8
Всего: 89



А насколько много этих констант? Сколько всего define-ов?


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
theworldcreator
Дата 3.1.2009, 00:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 362
Регистрация: 25.8.2007
Где: Москва

Репутация: 10
Всего: 13



Пока 106, но все время растет.
Кстати обнаружил такую вещь: время работы 106-и функций define - 7,27% от общего времени выполнения скрипта, который только и делает что подключает файл в котором ТОЛЬКО эти самые 106 define. НО. Если просто запустить файл с константами, вызов defin-ов займет 9,5% от общего времени выполнения скрипта(помните, он ничего кроме объявления констант не делает). Что делает компьютер в оставшиеся 90,5% времени?
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0637 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.