Эта глава затрагивает вопросы эффективности и отладки, которые можно скорее отнести к области искусства, чем науки. Эффективность не должна быть первостепенной задачей при создании программного кода. Сначала необходимо написать код, который бы работал, а задачей второго плана может быть обслуживаемость и понятность созданного программного кода.
По мере приобретения опыта в программировании можно переключиться на тактические аспекты проектирования. Это и понятно, поскольку подобные структуры сталкиваются с похожими проблемами. В процессе выполнения проектов индивидуальные разработчики и коллективы разработчиков создают свои собственные идиомы, которые легко можно отследить по журнальным статьям и репозиториям программных кодов. Приняв на вооружение определенную идиому, разработчик может положиться на нее как на уже решенную проблему. Такой подход позволяет сэкономить время при написании программного кода.
В большинстве проектов большую часть времени, необходимого для выполнения программы, потребляет наименьшая часть кода. Конечно, имеет смысл прежде всего обратить внимание на самый медленный фрагмент программного кода. Если производительность возрастает до приемлемого уровня, оптимизацию можно закончить.
При наличии ошибки в сценарии время, затраченное на написание полных комментариев и обозначений, окупится сторицей. Иногда простой просмотр проблемного кода позволяет обнаружить в нем узкие места. Для того чтобы разобраться в проблеме, достаточно распечатать значения переменных.
Из книг, посвященных данной теме, можно порекомендовать следующие. В книге WritingSolid Code Стива Мэгьюра (Steve Maguire) описывается создание приложений на языке программирования C, но многие концепции, изложенные в ней, применимы и для программирования сценариев PHP. Другой такой книгой является книга Брайана У. Кернигана, Роба Пайка Практика программирования, выпущенная на русском языке в ИД "Вильямс" в 2004 году.
28.1. Оптимизация
Одна из причин, по которой был выбран PHP, - это возможность быстро создать Web-приложения, не беспокоясь при этом о следовании всем правилам хорошего проектирования. Когда дело доходит до быстрого создания прототипов, PHP проявляет себя с наилучшей стороны. Когда наступает очередь использования этих возможностей PHP, на передний план выступает ответственность за создание прозрачного кода, когда наступает время создавать программный код длительного использования. Следование руководству по написанию стиля поможет создавать понятные программы, но, к сожалению, неэффективные.
Оптимизация представляет собой процесс тонкой настройки программы для ускорения ее работы или снижения потребления ею памяти. Потребление памяти не входит в число первостепенных факторов, так как память стала относительно недорогой, а вот уменьшение времени выполнения всегда является желательным.
Начиная писать программу, необходимо чем-то пожертвовать, например производительностью в пользу прозрачности написания. Следуйте соглашениям по кодированию, таким как использование mysql_fetch_row вместо mysql_result, но помните, что время программирования является достаточно дорогим, особенно на этапе понимания кода программистами. В таком случае лучшим решением всегда является простейшее.
После завершения разработки программы необходимо обратить внимание на ее производительность. Если проект выигрывает от формальных требований к спецификациям, обратитесь к любым ограничениям рабочих характеристик. Не будет лишним рассмотреть максимальную нагрузку на страницу для Web-приложений. На время, проходящее от щелчка на ссылке до полного появления страницы на экране, влияют самые различные факторы. Обязательно ограничьте влияние таких факторов, которые невозможно контролировать, как, например, скорость работы сети.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Эффективность и отладка
05-07-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Проэктирование. Часть Четырнадцатая. | PHP. Эффективность и отладка. Часть Вторая. |