php Вопрос по файлу который инклюдится |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6824-й день
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
php Вопрос по файлу который инклюдится |
RipperR |
Aug 22 2017, 10:42
Пост
#1
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Народ вопрос такой есть файл в нем собраны все классы и функции моего проекта он уже порядка 7000 строк.
Влияет ли подключение такого файла к каждой страница на производительность ? или лучше его разбить на части ... А то я обратил внимание что странички (файл php) на всех подразделах выполняется по 500мс чисто файл php.. то-есть в логах стоит Ожидание 216мс скачивание 353 мс... Сообщение отредактировал RipperR - Aug 22 2017, 10:44 |
Celin |
Aug 22 2017, 10:46
Пост
#2
|
Репутация: -342 rtfm Группа: Пользователи Сообщений: 5 264 С нами с: 4-April 08 |
хкм. дробить на файлы и подключать по потребности.
так нельзя |
miniden |
Aug 22 2017, 10:53
Пост
#3
|
Репутация: 31 Дух Группа: Пользователи Сообщений: 89 С нами с: 14-October 09 |
Народ вопрос такой есть файл в нем собраны все классы и функции моего проекта он уже порядка 7000 строк. Влияет ли подключение такого файла к каждой страница на производительность ? или лучше его разбить на части ... А то я обратил внимание что странички (файл php) на всех подразделах выполняется по 500мс чисто файл php.. то-есть в логах стоит Ожидание 216мс скачивание 353 мс... 7к строк это не много http://php.net/manual/pl/function.memory-get-usage.php - вот так меряем на каких этапах теряем много памяти https://stackoverflow.com/questions/535020/...ion-time-in-php - так меряем вызовы и время. В идеальном мире, 20мб на php скрипт это уже предел. По факту на теперешних серверах и 160мб норма. На объявление самих функций, php не потратит много времени и памяти. |
RipperR |
Aug 22 2017, 11:30
Пост
#4
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Тазик под сайт не рахит но чет задумчевый FX-8320E 8GB вывод бд через json генерится 600 ms основной файлы рендерется 500 ms вроде не критично но мне кажется дальше будет хуже в бд уже Овер 10к записей и становится будет все больше ...
Сообщение отредактировал RipperR - Aug 22 2017, 12:29 |
BahuL |
Aug 22 2017, 12:09
Пост
#5
|
Репутация: 11 Fasty.net Группа: Пользователи Сообщений: 46 С нами с: 31-March 06 |
Создатели симфони тоже используют 1 большой файл вместо кучи мелких
To ensure optimal flexibility and code reuse, Symfony applications leverage a variety of classes and 3rd party components. But loading all of these classes from separate files on each request can result in some overhead. To reduce this overhead, the Symfony Standard Edition provides a script to generate a so-called bootstrap file, consisting of multiple classes definitions in a single file. By including this file (which contains a copy of many of the core classes), Symfony no longer needs to include any of the source files containing those classes. This will reduce disc IO quite a bit. ссыль |
RipperR |
Aug 22 2017, 12:24
Пост
#6
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Короче я так понял что надо наставить там микротаймов в большем файле по смотреть на чем оно спотыкается ?
Нехочет выполнять memory_get_usage тупо крашится ... PHP/5.6.30 на 7 рку пока апать не рискну ибо там еще freepbx с его GUI и ему это врятли понравится ... Сообщение отредактировал RipperR - Aug 22 2017, 12:32 |
RipperR |
Aug 22 2017, 18:43
Пост
#7
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Сделал тестовый файл занклюдил свой файл с функционалом с простым echo "21312"
время выполнения 300-500мс ... Я чет не понимаю если функции не вызываются не вызываются методы из классов и сами классы как таковые ... какого хрена оно так туго его обрабатывает Сообщение отредактировал RipperR - Aug 22 2017, 18:44 |
BahuL |
Aug 28 2017, 12:58
Пост
#8
|
Репутация: 11 Fasty.net Группа: Пользователи Сообщений: 46 С нами с: 31-March 06 |
Сделал тестовый файл занклюдил свой файл с функционалом с простым echo "21312" время выполнения 300-500мс ... Я чет не понимаю если функции не вызываются не вызываются методы из классов и сами классы как таковые ... какого хрена оно так туго его обрабатывает как настроено кеширование. На какой системе вертится проект? ФС? |
RipperR |
Aug 28 2017, 20:48
Пост
#9
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Кеширование не трогал все дефолтное .
Ось CentsOS 7 ext4 |
RipperR |
Aug 31 2017, 15:01
Пост
#10
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
Нашел я так понимаю одно из узких мест ... а имеено подключение к MySQL bd
$start = microtime(); $dbcnx=@mysqli_connect($dblocation,$dbuser,$dbpasswd,$dbname); mysqli_query($dbcnx, "SET NAMES 'utf8'"); if(!$dbcnx) { echo ("Ощибка подключения к mySQL"); exit(); } echo round((microtime() - $start)*1000); это выполняется 200мс если я правильно посчитал Пустой файл с echo 234ms тоесть 34 мс код и 200 мс конект к бд. как это полечить или что я делаю не так. |
Payne |
Sep 1 2017, 7:13
Пост
#11
|
Репутация: 19 Активист Группа: Пользователи Сообщений: 293 С нами с: 17-March 06 |
Нашел я так понимаю одно из узких мест ... а имеено подключение к MySQL bd $start = microtime(); $dbcnx=@mysqli_connect($dblocation,$dbuser,$dbpasswd,$dbname); mysqli_query($dbcnx, "SET NAMES 'utf8'"); if(!$dbcnx) { echo ("Ощибка подключения к mySQL"); exit(); } echo round((microtime() - $start)*1000); это выполняется 200мс если я правильно посчитал Пустой файл с echo 234ms тоесть 34 мс код и 200 мс конект к бд. как это полечить или что я делаю не так. 200 мс на самом деле не так уж много. Если Вы боитесь за скорость выборки при количестве записей больше 10к, то используйте индексы для выборки по ключевым полям. Если я не ошибаюсь, MySQL может начинать притормаживать при кол-ве записей больше 300к в таблице, и то это вроде исправили давно. Можно использовать Redis или Memcache(d) для кеширования частых одинаковых запросов, если количество оперативки позволяет. Накрайняк Sphinx юзать, он конечно, не совсем для кеширования, но в данном случае подойдет, в принципе |
RipperR |
Sep 1 2017, 12:33
Пост
#12
|
Репутация: 40 Постоялец Группа: Пользователи Сообщений: 1 153 С нами с: 25-March 08 |
То-есть если процесс подключение к бд в 200 мс это норма ?
Просто я к тому что в основном подключение к бд файле и еще вспомогательном где генеритя таблица в json и уже мы имеем 400 мс а страничка грузится уже 550-700мс. |
Payne |
Sep 6 2017, 8:08
Пост
#13
|
Репутация: 19 Активист Группа: Пользователи Сообщений: 293 С нами с: 17-March 06 |
То-есть если процесс подключение к бд в 200 мс это норма ? Просто я к тому что в основном подключение к бд файле и еще вспомогательном где генеритя таблица в json и уже мы имеем 400 мс а страничка грузится уже 550-700мс. 200 - это нормально. Попробуйте закешировать выбираемые данные в редисе или мемкеше, оцените прирост в скорости. Ну и старайтесь сделать все запросы на одном соединении, а то опять потеряете в скорости. |
Упрощённая версия | Сейчас: 19th November 2024 - 16:20 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |