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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Все функции в одном файле 
V
    Опции темы
Flowers
Дата 16.7.2010, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.
Многим php страницам небольшого сайта требуются одни и те же функции. В процессе появился файл functions.php в котором собрано несколько десятков функций, которые используют многие страницы. То есть в начале каждого php файла стоит "require 'functions.php';".
Существует captcha.php к которому идет очень частое обращение, но использует он лишь одну функцию из functions.php. Не занимаюсь ли я растратой ресурсов процессора и оперативной памяти сервера, вызывая functions.php в файле captcha.php? Правильней ли будет просто скопировать нужную функцию в captcha.php?
PM MAIL   Вверх
Muerto
Дата 16.7.2010, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



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


--------------------
user posted image
PM MAIL   Вверх
skyboy
Дата 16.7.2010, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 75
Всего: 260



какой объем у файла functions.php? 50 тысяч строк? или все же меньше? с базой данных работа не происходит? А чтение/запись файлов? А запросы по сети? Очень, очень высока вероятность, что ты сейчас ищешь проблему там, где проблемы вовсе нет.
есть такой подход: не оптимизировать все подряд. Это ещё называют упреждающей(превентивной) оптимизацией. И говорят, что она - зло(я согласен, но вообще говорят люди много опытнее меня - так что интереснее их точка зрения)
вот то, что все функции подряд лежат в одном-единственном файле - плохо, но не с точки зрения скорости, а с точки зрения управления.
раздели их.
по категориям(file_function, graphics_helpers, socket_wrappers). по узлам системы, которые используют эти функции(guestbook_helpers). ещё по чем-то.
и управлять будет удобнее, и искать, и отлаживать.
PM MAIL   Вверх
Flowers
Дата 16.7.2010, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



50 тысяч?! Меньше 900 строк. С БД напрямую не работают вообще. А это имеет какое-то значение? Как я понимаю php не заходит в функции если они не вызываются, а просто определяет список тех, что есть. Просто мне показалось странным к коду генерирования картинки капчи (90 строк) добавлять каждый раз еще 900, ради функции в 7 строк. Может вы чуть-чуть проясните как php все это дело интерпретирует.
PM MAIL   Вверх
ksnk
Дата 16.7.2010, 23:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Flowers, какая-нибудь joomla имеет в своем составе ~3500 файлов. Не занимаются ли авторы джумлы растратой рессурсов компьютера и не следует ли им посоветовать объединить все файлы в один большой?  smile 


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Flowers
Дата 16.7.2010, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Не думаю, что в джумле они все разом открываются. Ну ясно. Дурацкие я какие-то вопросы задаю. smile 

PM MAIL   Вверх
skyboy
Дата 17.7.2010, 00:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 75
Всего: 260



Цитата(Flowers @  16.7.2010,  22:35 Найти цитируемый пост)
Может вы чуть-чуть проясните как php все это дело интерпретирует. 

нет, прости. любопытство твое удовлетворить не смогу. но уверен, что здесь нет узкого места, если ты не соорудил нечто совсем монструозное.
а про БД я говорил не в свете обсуждения этого файла с функциями, а в плане того, что при наличии потенциально намного более медленной операции(подключение к БД, выполнение запросов) подкапывание под include - практически бесполезная вещь.
PM MAIL   Вверх
maxipub
Дата 17.7.2010, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: нет
Всего: 1



Flowers, в данном случае нет никаких критических нагрузок. По опыту, заботиться об инклудах стоит если их количество более 20 или объем одиночного файла функций больше 100кб. В остальном, железо дешевле.
PM MAIL   Вверх
Muerto
Дата 17.7.2010, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Flowers,  А ты засеки по microtime и ясно станет есть смысл или нет
т.е. засеки перед инклудом и после, а патом функцию впиши и перед функцией и после, и будет ясно сколько времени что берет

Я такой метод и в запросах и в разных функциях использую что бы решить как лучше...

Это сообщение отредактировал(а) Muerto - 17.7.2010, 01:37


--------------------
user posted image
PM MAIL   Вверх
Flowers
Дата 17.7.2010, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Muerto, Судя по микротайму инклуд занимает примерно 2 тысячных секунды.  smile
PM MAIL   Вверх
Muerto
Дата 17.7.2010, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1207
Регистрация: 23.9.2006

Репутация: 3
Всего: 4



Когда у тебя будет миллион заходов в день, ты можешь потерять 2000 секунд в сумме smile 
Но имхо это конечно не значительно терять 2 тысячных секунды...

Это сообщение отредактировал(а) Muerto - 17.7.2010, 14:23


--------------------
user posted image
PM MAIL   Вверх
skyboy
Дата 17.7.2010, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


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

Репутация: 75
Всего: 260



Цитата(Muerto @  17.7.2010,  13:22 Найти цитируемый пост)
Когда у тебя будет миллион заходов в день

ну-ну. запугай его.
и не говори ничего о том, что при посещаемости в миллион человек у него должна уже будет работать система кеширования контента поблочно, которое позволит во многих случаях вообще не приобщать РНР к процессу, и о опкод-кешерах, которые заменят процесс подключения РНР-скриптов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

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

Важно:

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

Внимание:

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

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

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


 




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


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

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