![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Flowers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Здравствуйте.
Многим php страницам небольшого сайта требуются одни и те же функции. В процессе появился файл functions.php в котором собрано несколько десятков функций, которые используют многие страницы. То есть в начале каждого php файла стоит "require 'functions.php';". Существует captcha.php к которому идет очень частое обращение, но использует он лишь одну функцию из functions.php. Не занимаюсь ли я растратой ресурсов процессора и оперативной памяти сервера, вызывая functions.php в файле captcha.php? Правильней ли будет просто скопировать нужную функцию в captcha.php? |
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Ну имхо не существенная разница будет, но если тебе важны пару мили секунд, можешь просто вписать функцию...
Один из самых главных плюс того что есть файл функций так это если менять нужно, так меняешь один раз в одном файле, иначе придется во всем переписывать... |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
какой объем у файла functions.php? 50 тысяч строк? или все же меньше? с базой данных работа не происходит? А чтение/запись файлов? А запросы по сети? Очень, очень высока вероятность, что ты сейчас ищешь проблему там, где проблемы вовсе нет.
есть такой подход: не оптимизировать все подряд. Это ещё называют упреждающей(превентивной) оптимизацией. И говорят, что она - зло(я согласен, но вообще говорят люди много опытнее меня - так что интереснее их точка зрения) вот то, что все функции подряд лежат в одном-единственном файле - плохо, но не с точки зрения скорости, а с точки зрения управления. раздели их. по категориям(file_function, graphics_helpers, socket_wrappers). по узлам системы, которые используют эти функции(guestbook_helpers). ещё по чем-то. и управлять будет удобнее, и искать, и отлаживать. |
|||
|
||||
| Flowers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
50 тысяч?! Меньше 900 строк. С БД напрямую не работают вообще. А это имеет какое-то значение? Как я понимаю php не заходит в функции если они не вызываются, а просто определяет список тех, что есть. Просто мне показалось странным к коду генерирования картинки капчи (90 строк) добавлять каждый раз еще 900, ради функции в 7 строк. Может вы чуть-чуть проясните как php все это дело интерпретирует.
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 96 Всего: 386 |
Flowers, какая-нибудь joomla имеет в своем составе ~3500 файлов. Не занимаются ли авторы джумлы растратой рессурсов компьютера и не следует ли им посоветовать объединить все файлы в один большой?
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Flowers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Не думаю, что в джумле они все разом открываются. Ну ясно. Дурацкие я какие-то вопросы задаю.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
нет, прости. любопытство твое удовлетворить не смогу. но уверен, что здесь нет узкого места, если ты не соорудил нечто совсем монструозное. а про БД я говорил не в свете обсуждения этого файла с функциями, а в плане того, что при наличии потенциально намного более медленной операции(подключение к БД, выполнение запросов) подкапывание под include - практически бесполезная вещь. |
|||
|
||||
| maxipub |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 517 Регистрация: 22.10.2009 Репутация: нет Всего: 1 |
Flowers, в данном случае нет никаких критических нагрузок. По опыту, заботиться об инклудах стоит если их количество более 20 или объем одиночного файла функций больше 100кб. В остальном, железо дешевле.
|
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Flowers, А ты засеки по microtime и ясно станет есть смысл или нет
т.е. засеки перед инклудом и после, а патом функцию впиши и перед функцией и после, и будет ясно сколько времени что берет Я такой метод и в запросах и в разных функциях использую что бы решить как лучше... Это сообщение отредактировал(а) Muerto - 17.7.2010, 01:37 |
|||
|
||||
| Flowers |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 33 Регистрация: 25.10.2009 Репутация: нет Всего: нет |
Muerto, Судя по микротайму инклуд занимает примерно 2 тысячных секунды.
|
|||
|
||||
| Muerto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1207 Регистрация: 23.9.2006 Репутация: 3 Всего: 4 |
Когда у тебя будет миллион заходов в день, ты можешь потерять 2000 секунд в сумме
Но имхо это конечно не значительно терять 2 тысячных секунды... Это сообщение отредактировал(а) Muerto - 17.7.2010, 14:23 |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
ну-ну. запугай его. и не говори ничего о том, что при посещаемости в миллион человек у него должна уже будет работать система кеширования контента поблочно, которое позволит во многих случаях вообще не приобщать РНР к процессу, и о опкод-кешерах, которые заменят процесс подключения РНР-скриптов. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |