ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

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

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Эффективность и отладка. Часть Вторая.


06-07-2015

Принимая решение об оптимизации программы, сначала рассмотрите возможность модернизации своего компьютерного парка, - это может оказаться самой дешевой альтернативой. В 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 секунды.

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Эффективность и отладка PHP. Эффективность и отладка. Часть Третья.