Действительно ли возможно иметь слишком много функций в приложении PHP?

Приложение PHP может иметь слишком много функций? Выполнение большого количества памяти пожирателя ресурсов функций PHP и ресурсов? Моя тема WordPress в разработке имеет много функций (вероятно, больше чем 100 к тому времени, когда я сделан), и я обеспокоен, что у меня могли бы быть слишком многие.

6
задан orbit82 11 June 2010 в 05:44
поделиться

7 ответов

Я бы не стал беспокоиться о 100 функциях. Это очень мало функций.

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

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

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

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

В конце концов, беспокойтесь об этом, только если вы профилируете свое приложение и обнаруживаете, что вызовы функций являются узким местом ЦП, а определения функций - узким местом памяти.

3
ответ дан 8 December 2019 в 03:52
поделиться

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

3
ответ дан 8 December 2019 в 03:52
поделиться

В ядре PHP есть более 3000 функций , поэтому не беспокойтесь о добавлении слишком большого количества .

2
ответ дан 8 December 2019 в 03:52
поделиться

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

Производительность можно улучшить, добавив в нее аппаратное обеспечение , приложение с плохой структурой быстро становится очень трудно поддерживать.

Кстати: 100 функций - это ничего!

8
ответ дан 8 December 2019 в 03:52
поделиться

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

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

4
ответ дан 8 December 2019 в 03:52
поделиться

100 функций - не о чем беспокоиться. Если ваш код медленный, вы должны профилировать его, чтобы явно найти медленные части.

Помните, преждевременная оптимизация - зло

6
ответ дан 8 December 2019 в 03:52
поделиться

Думаю, да, в проекте может быть слишком много функций. Я не знаю, как вы настроили свой проект, но похоже, что у вас есть библиотеки функций. Возможно, вы захотите рассмотреть возможность объектно-ориентированной разработки в будущем. Это позволяет вам инкапсулировать функциональность в объекты. Следовательно, объект содержит функции, и они не видны другим объектам (если вы не хотите, чтобы они были видны). Это помогает значительно снизить загрязнение API.

Что касается проблем с памятью - я тоже об этом беспокоился, НЕ. Хорошие методы программирования важнее скорости. В любом случае вы даже не заметите разницы на веб-сервере. Всегда отдавайте предпочтение удобству обслуживания, а не скорости!

1
ответ дан 8 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: