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


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


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

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

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

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


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

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

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

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

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

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


17-07-2015

28.14. Не объединяйте длинные строки
Обычной практикой программирования в PHP является конкатенация длинных последовательностей данных без особой надобности перед их печатью. Сравните листинги 28.9 и 28.10. Конкатенация subject и contents должна произойти до того, как сценарий вызовет функцию print, и если строка contents достаточно длинная, это может занять много времени. В листинге 28.10 вызов функции print происходит несколько раз, а PHP никогда не объединит subject и contents в памяти, что сохранит ценное время. Заметим, что, так как сам по себе вызов функции print характеризуется определенными накладными расходами, не всегда следует разбивать операцию конкатенации в отдельные операторы print. В определенных случаях это также приводит к тому, что код плохо читается. По этой причине лучше следовать такой практике только при отображении длинных строк.

| Листинг 28.9. Конкатенация длинных строк_
<?php
$subject = "какая-то тема";
$contents = "... очень большой отрывок текста..."; print("Subject: $subjectnn$contents");
?>

I Листинг 28.10. Способ избежать объединения длинных строк
<?php
$subject = " какая- то тема";
$contents = "... очень большой отрывок текста..."; print("Subject: $subjectnn"); print($contents);
?>

28.15. Не обрабатывайте большие файлы с помощью Web-сервера Apache
Скорее это совет не по программированию, а по установке сервера. Если ваш Web-узел обслуживает загрузку больших файлов, может быть уместным для их обслуживания настроить специальный сервер, вместо того чтобы обрабатывать их с помощью Web-сервера Apache с активизированным PHP. Существует несколько причин поступить именно таким образом. 
Загрузка больших файлов требует много времени. Число параллельных процессов, которые использует Web-сервер Apache, обычно невелико. Процессы Web-сервера Apache, обслуживающие загрузку, становятся на время загрузки недоступными. Это уменьшает число параллельных пользователей, которые может обработать ваш Web-сервер. Процессы Web-сервера Apache потребляют относительно большие объемы памяти для каждого процесса, особенно если Apache работает с активизированным PHP. Даже если повышение максимального количества параллельных процессов Web-сервера не является обязательным, будут расходоваться зря большие объемы памяти.
Отличным решением для установки в качестве сервера загрузки является дроссе­лирующий Web-сервер thttpd <http://www.acme.com/software/thttpd/>. Он очень "легкий" и не создает нагрузки на сервер, что делает его одним из наиболее подходящих Web-серверов для обслуживания большого количества такого статического содержимого, каким являются загружаемые файлы.

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



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