PHP: include или все в один файл? — include php быстродействие

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Загрузка...

Вопрос:


Здравствуйте! Хотел спросить у разработчиков, у которых возможно был такой опыт! В общем есть идея: писать код модульным образом (каждый модуль в своем файле), и инклудить требуемые модули в итоге в главный файл (к примеру из всех 30 модулей нам нужно только некоторые 5), или такой метод: в конце написания модулей, «склеить» их всех в один файл и сделать один инклуд в главный файл? Для более ясной картины: инклудить 5 требуемых файлов по 100 кб, и с ними работать, или инклудить 1 файл 3000 кб, со всеми сразу склеенными модулями — что быстрее?

Автор вопроса: axejko

zb’

Вы думаете про оптимизацию на include ? так вы полный путь указывайте и никакого поиска не будет. А вообще в php узкие места не при загрузке файлов обычно, а в первую очередь в логике приложения, во вторую(а часто и в первую) — при обмене с базой данных и в третью — при интерпретации кода, независимо от того в одном это файле или в нескольких, тем более как вы сами заметили не каждый модуль понадобится при каждом запросе, т.е. при использовании схемы «один большой файл», вы будете как минимум производить синтаксическую проверку этого большого файла при каждом запуске.

Вообще то такой трюк дает прирост производительности (в особенности в связке с акселератором). require/include в любом случае тратит время на подключение файла (а само время конечно же зависит от HDD и файловой системы), а SSD диски есть не у всех. Например возьмем Zend и посмотрим тут, так что в этом есть смысл. Но, не любая архитектура проекта позволяет реализовать подобное.

Это бред. По сути вы дадите нагрузку больше.

<?
include ('5.php'); //в 5пхп $o=2+1;
echo $o.'<br>';
echo memory_get_usage() . "n"; //50632
?>

<?
$o=2+1;
echo $o.'<br>';
echo memory_get_usage() . "n"; //50192
?>

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

а лучше не мучайтесь этой фигней, пишите как удобнее вам, намного больше уходит ввод новых переменных

Посмотрите мою статью с исчерпывающим исследованием по теме вопроса.

Сравнение производительности автозагрузки и объединения классов в один файл

Источник

Вам также может быть интересно:

Переадресация запросов по данным из тела запроса — java nginx spring-mvc
Вопрос: Существует сервис с "кучей" контроллеров. Стоит задача "распилить" данный сервис на микросервисы. Сами микросервисы будут крутится на самостоятельных машинах. Основная проблема в том, что есть ...
Java. Деление в столбик. Съезжает вывод в консоль — java
Вопрос: Кто-нибудь может подсказать почему при делении 1034/15 съезжает вывод в консоль? public class Division { private StringBuffer result = new StringBuffer(); ...
Доступ к cookies другого сайта — javascript
Вопрос: Не знаю, или правильно написал вопрос в заголовке. Вообще вопрос такой. Есть, например виджет коминтариев фб, его можно установить на свой сайт. При заходе, он ...
Не видит загрузочной флешки с Ubuntu — linux windows ubuntu
Вопрос: Решил установить Ubuntu второй ОС. Скачал образ и установил его на флешку. Память для будущей Ubuntu выделил ещё когда устанавливал Windows. Проблема в том, что когда ...
Как устроен Netty? — java async netty
Вопрос: Немного почитал про асинхронные сокеты и про фреймворк Netty, но у меня возник вопрос о том как устроен механизм обработки многочисленных запросов к Netty. ...
Как реализовать правильную связь классов в javascript? — javascript ооп полиморфизм
Вопрос: Теперь в деталях : имеются несколько классов : class RemovedItem { constructor(value, key) { this.value = value; ...
Модификация Observable при помощи дополнительного запроса в сеть — android kotlin rxjava
Вопрос: работаю с Vk.APi и произвожу поиск списка групп. В ответе с API получаю список групп, но проблема в том, что каждая из них не содержит ...
Как загрузить Layout в Activity или View из переменной типа String — android xml activity
Вопрос: Обычно внешний вид Activity или View загружается из файлов типа *.xml, вложенных в папку res/layout проекта. А как сделать, чтобы внешний вид загружался из ...
Как выбрать максимальное значение в столбце? — sql sql-server
Вопрос: У меня есть таблица которая состоит из 2 столбцов OrderID OrderDate ------------------------------- 1021 1976-07-04 00:00:00 2312 ...
Форма TextView XML — android xml
Вопрос: Прошу понять меня правильно: Я не прошу что-то сделать за меня и предоставить готовый код ВОПРОС: Какие атрибуты необходимо использовать, чтобы выполнить такой же вид ...
Отловить закрытие консольной программы — c# console
Вопрос: Есть консольное приложение (C#), мне нужно отловить событие его закрытия. Это может быть и Ctrl+C и нажатие на крестик, вообще любое событие после которого ...
Странное поведение jQuery — jquery
Вопрос: Есть веб-страница, на которой естественно имеются стили и скрипты. При очистке кэша и полной перезагрузке страницы (Ctrl + F5) jQuery неправильно определяет height() и ...
Оверлей для любой программы и игры DirectX в фуллскрине через инжект dll — c# wpf
Вопрос: Всем привет. Хочу сделать универсальный оверлей, который при запуске из консольного приложения будет инжектить dll с самим оверлеем в любую программу, как у стима/дискорда. Про инжект ...
Использование, связка бинов в Java — java netbeans xhtml
Вопрос: У меня есть example.xhtml, я не знаю как правильно его заполнить, так как NetBeans предлагает один вариант, а видео, где все работает, заполняют по-другому.Netbeans: <?xml ...
Удалил rfremix-relese при попытке обновления — linux fedora
Вопрос: Сегодня хотел обновить Руссиан Федора Ремикс (RFRemix) 28->29. dnf upgrade выдал сообщение о конфликте в пакете rfremix-release-2.ххххххх Немного посомневался, но решил что это модуль именно ремикса ...

Оставьте ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *