Принимая решение об оптимизации программы, сначала рассмотрите возможность модернизации своего компьютерного парка, - это может оказаться самой дешевой альтернативой. В 1965 году Гордон Мур (Gordon Moore) пришел к выводу, что мощность компьютеров каждые 18 месяцев удваивается. Эта зависимость так и называется - Закон Мура. И при постепенном увеличении мощности стоимость последней уменьшается. Например, несмотря на то, что тактовая частота процессоров удваивается, их стоимость остается относительно стабильной. Простая модернизация сервера, возможно, будет стоить меньше, чем оплата труда программистов, привлеченных к работе по оптимизации кода.
После модернизации аппаратной части следующим этапом является модернизация программного обеспечения, поддерживающего работу разрабатываемой программы. Начнем с операционной системы. ОС Linux и BSD Unix имеют репутацию операционных систем, которые могут "выжать" больше производительности из более старого оборудования и по производительности превосходят обычные коммерческие операционные системы, особенно если на передний план выходит такой фактор, как нестабильность работы сервера.
Если программа использует базу данных, можно рассмотреть различие между реляционными базами данных. Например, СУБД MySQL имеет существенные преимущества в рабочих характеристиках над другими базами данных. Рабочие характеристики определенных СУБД можно найти на соответствующих Web-узлах. Кроме того, посмотрите, как использует память сервер базы данных.
Надо сказать о двух программных продуктах компании Zend, которые способны повысить рабочие характеристики программ, написанных на языке PHP. Первым из них является Zend Optimizer, который оптимизирует PHP-код по мере его обработки. Он позволяет ускорить выполнение программ на 40-100% по сравнению с рабочими характеристиками программы без него. Как и сам PHP, Zend Optimizer поставляется бесплатно. Другой продукт - это Zend Cache. Благодаря хранению скомпилированного кода в памяти он позволяет еще больше повысить производительность программного кода. Некоторые пользователи смогли добиться 300-процентного увеличения эффективности. Приобрести программный продукт Zend Cache можно на Web-узле компании Zend по адресу <http://www.zend.com/>.
28.2. Измерение производительности
Перед тем как приступить к оптимизации, необходимо измерить эффективность работы кода. Существуют два простых метода: вставка HTML-комментариев и использование утилиты ApacheBench Web-сервера Apache. PHP-приложения работают на Web-сервере, но при выполнении измерений должны учитываться задержки, добавляемые обработкой HTML-документов по сети.
Необходимо исключить обработку сервером любых других запросов. Для этого может потребоваться блокировка других пользователей или даже отключение их от сети. Тестирование сервера, который обеспечивает работу общедоступного Web-узла, может дать неоднозначные результаты, так как трафик зависит от времени суток. Тесты необходимо проводить на выделенном сервере, даже если "железо" не совсем соответствует рабочему серверу. Оптимизация, выполненная на более медленной аппаратной части, приведет к существенному выигрышу при запуске на рабочем сервере.
Простейшим методом является вставка HTML-комментариев в вывод сценария. Этот метод "утяжеляет" страницу и предполагает вставку данных, выводимых функцией microtime. Вставьте в начало и в конец сценария, а также в некоторых ключевых строках строки наподобие print("<!--" . microtime() . "-->n"). Для того чтобы измерить производительность, запросите страницу с помощью браузера и просмотрите полученный результат (рис. 28.1).
Функция microtime возвращает время в секундах. Первое число - это доли секунд, а второе - время в секундах, прошедшее с 1 января 1970 года. Можно сложить два этих числа и сохранить их в массиве, но лучше минимизировать воздействие таких побочных вычислений и производить соответствующие вычисления вручную. В примере, приведенном выше, выполнение первой части сценария занимает примерно 0,14 секунды, а второй - 0,39 секунды.
ТОП-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. Эффективность и отладка. Часть Вторая.
06-07-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Эффективность и отладка | PHP. Эффективность и отладка. Часть Третья. |