Что быстрее: несколько require_once(), или один, который вмещает файлы?

artemK0

Новичок
Что быстрее: несколько require_once(), или один, который вмещает файлы?

У меня есть несколько (около 10) require, каждый из которых подключает определённый класс, имеет ли смысл забросить все класы в один файл и инклудить его. Будет ли выигрыш с точки зрения времени выполнения?
 

berkut

Новичок
палюбас будет. только стоит-ли этот выигрыш получаемых неудобств
 

artemK0

Новичок
Автор оригинала: Апокалипсис
замерить религия не позволяет?
дело в том, что у меня на машине выигрыш буквально в 0.1-0.5 сек. Проект(чат) будет работать при большом количестве залогиненых юзеров, а я не могу его так потестить. Хотелось бы знать, хотя бы теоретически будет ли быстрее

-~{}~ 13.12.07 20:04:

Автор оригинала: berkut
палюбас будет. только стоит-ли этот выигрыш получаемых неудобств
какие могут быть неудобства перекинуть построчно из одного файла в другой?
 

Alexandre

PHPПенсионер
Проект(чат) будет работать при большом количестве залогиненых юзеров
используй ab для теста
расчитай пиковую нагрузку и смотри - на сколько выдержит у тебя скрипт стресс-тест
 

Апокалипсис

тех дир matras.ru
имхо экономия на спичках.
в программе наверняка есть другие тяжёлые места на которые нужно обратить внимание
 

Alexandre

PHPПенсионер
какие могут быть неудобства перекинуть построчно из одного файла в другой?
неудобства возникнут, в случае - если придется править код
если код отлаженный и ты заведомо в него не полезешь... то можно рискнуть слить все в одно... даже автоматом, используя команду cp, с последующим вырезом пхп-шных тегов <?php ?> либо в редакторе либо используя sed
 

romy4

invoke [brain]
специально протестил у себя на тачке:
запрос теста вида: ab.exe -n 100 -c 100 http://test.home/test-require.php


результат: разницы никакой. 10 против 11 мс.
 

artemK0

Новичок
Автор оригинала: Alexandre
неудобства возникнут, в случае - если придется править код
если код отлаженный и ты заведомо в него не полезешь... то можно рискнуть слить все в одно... даже автоматом, используя команду cp, с последующим вырезом пхп-шных тегов <?php ?> либо в редакторе либо используя sed
Значит в чём задача: есть чат, который каждые 3 сек. запрашивает определённый файл, в том файле и каждые 3 сек. инклудяться эти файлы, а файл, в котором они все лежат создаётся каждый раз при залогинивании.

-~{}~ 13.12.07 20:17:

Автор оригинала: romy4
специально протестил у себя на тачке:
запрос теста вида: ab.exe -n 100 -c 100 http://test.home/test-require.php


результат: разницы никакой. 10 против 11 мс.
Спасибо.
 

Alexandre

PHPПенсионер
100 запросов - мало, проверь на 1000

-~{}~ 13.12.07 20:30:

есть чат, который каждые 3 сек. запрашивает определённый файл
как реализовано?рефрешем из браузера?

-~{}~ 13.12.07 20:31:

в том файле и каждые 3 сек. инклудяться эти файлы
что за файлы? кто их создает?

-~{}~ 13.12.07 20:32:

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

artemK0

Новичок
Автор оригинала: Alexandre
как реализовано?рефрешем из браузера?
Клиентская часть на флеше. Флешка вызывает каждые 3 секунды файл, с которым обменивается инфой.

Автор оригинала: Alexandre
что за файлы? кто их создает?
есть 10 класов, которые лежат в 10 разных файлах, при логине я копирую содержимое файлов в один. Итого вместо периодического подключения 10 файлов, инклудиться один, уже созданный.
 

Alexandre

PHPПенсионер
есть 10 класов, которые лежат в 10 разных файлах, при логине я копирую содержимое файлов в один. Итого вместо периодического подключения 10 файлов, инклудиться один, уже созданный.
наверно, комбинированный файл надо делать 1 раз, где-то в админке...
выиигрый 1 миллисек - не большой, но все-же значимый. я знал одну фирму - там было требование - довести работу скриптов не более 5 мсек.

да 10-11 мсек - это милли или микро секунды - разница в 1000 раз.
 

romy4

invoke [brain]
Alexandre
100 одновременных по 100 запросов. Зачем больше?
При 1000 одновременных по 1000 запросов уже есть небольшая разница: 3 мс против 8 мс. Но, имхо, это самый последний момент с require на котором бы стоило сейчас зацикливаться.

-~{}~ 13.12.07 19:48:

Alexandre
я работал на проекте, где требовалась каждая миллисекунда (это был информационный анализатор и собственно я был основным реализатором проекта) и по опыту скажу, что лучше здесь делать так, чтобы было удобнее и не морочиться
 

Alexandre

PHPПенсионер
При 1000 одновременных по 1000 запросов
можно сервак посадить...
при 100 одновременных - 1000 запросов
да и 100 одновременных - это условности, так как надо чтоб сервер и аб стояли на разных машинах... 100 одновременных запросов, а системная очередь в среднем устанавливается в 25-50... так что 50-75 из них находятся в очереди... можно проверить по кол-ву висящих httpd в момент тестирования.

и еще есть ограничение на max request в настройках Апача, это тоже надо учитывать.
 

romy4

invoke [brain]
конечно, разница будет некая, так как у меня одновременных 255 потоков апача (2.2 потоковый), да и тачка виндовая. т.е. в данном случае каждому потоку достаётся по 4 конекта в очередь. но всё равно, своё имхо я высказал :)
 
Сверху