Пятница, 22-Ноября-2024, 2.40 AM

Dletemplate.ru

Категории раздела
Html [7]
HTML-redactor [2]
CSS [10]
SSI [5]
XML [4]
JavaScript [10]
PHP [9]
Perl [5]
ASP [3]
MySQL [5]
Apache [6]
Раскрутка сайта [15]
Наш опрос
Оцените мой сайт
Всего ответов: 107
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Статьи

Главная » Статьи » PHP

Советы и трюки по PHP

Небольшое вступление

Началом написания серии статей "Советы и трюки" послужил отчет "Tips and Tricks" Расмуса Лирдофа (Rasmus Lerdorf) с конференции PHPCon2002, которая состоялясь 24 октября 2002 года в городе Milbrae, Калифорния, США. Изначально планировалось просто перевести отчет по просьбам членов Клуба разработчиков PHP, но по мере чтения статей возникло много спорных вопросов и разногласий с автором, поэтому я постарался как можно более четко определить и разъяснить преимущества и недостатки того, или иного подхода оптимизации решений.

Часть 1. Оптимизация

1. Без необходимости не используйте регулярные выражения.

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

Неправильно: <? $new = ereg_replace("-","_",$str); ?>
Правильно:
<? $new = str_replace("-","_",$str); ?>
Неправильно:
<? preg_match("/(\..*?)$/",$str,$reg); ?>
Правильно:
<? substr($str,strrpos($str,)); ?>

2. Используйте ссылки при обработке больших массивов данных для экономии памяти сервера.

Работа со ссылками (references) является более приемлемой при обработке больших объемов информации, хотя и немного медленней, чем работа с копией, но использует меньший объем памяти. Поэтому Вы должны самостоятельно определить, запасы каких ресурсов на сервере более рационально использовать - процессора или памяти.

3. Постоянные (persistent) соединения с БД

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

Учтите, в PHP реализована функция отключения постоянных соединений, поэтому если у провайдера в конфигурации PHP установлена директива mysql.allow_persistent = Off, то соединения вызываемые функцией mysql_pconnect() будут обрабатываться как mysql_connect().

Очень часто встречаются советы не использовать постоянные соединения с БД. Это связано в первую очередь с тем, что многопоточные веб-сервера, к которым относится и Apache, не могут разделить со своими потомками соединение с БД. Таким образом если следующий запрос приходит на другого потомка, то он создает новое постоянное соединение, что со временем приводит к появлению большого количества незакрытых соединений с БД и переполнению допустимого лимита max_connections в MySQL. Возможно два решения этой проблемы: первое описано выше заключается в запрете использования постоянных соединений, второе - использовать малое значение времени жизни постоянного соединения в директиве wait_timeout конфигурации MySQL. По умолчанию оно составляет 28800 сек. (8 часов), по истечению которых после отсутствия активности соединения будет закрыто.

Помимо всего этого существуют еще некоторые проблемы постоянных соединений с транзакциями и блокировками таблиц. Так, если таблица блокируется запросом на транзакцию или LOCK TABLE и при этом скрипт заканчивает свое выполнение до завершения транзакции или выполнения разблокировки таблицы UNLOCK TABLE соответственно, то вторичная попытка доступа к таблице через это же постоянное соединение будет отклонена. При использовании непостоянного соединения с БД, при завершении скрипта соединение закрывается автоматически и при этом снимает блокировку со всех таблиц и завершает все транзакции. Решением этой проблемы есть регистрации функции register_shutdown_function() которая бы по завершению скрипта снимала блокировку с таблиц и завершала транзакции.

Так что можете использовать, а можете и не использовать, все зависит от поставленных задач.

4. Используешь MySQL? Проверь mysql_unbuffered_query()

Небуферезированные запросы к БД MySQL применяется так же как и mysql_query(). Разница заключается в том, что вместо того, чтоб ожидать полного окончания запроса сохранить результат в клиентском API, небуферизированный запрос делает доступными результаты своего выполнения как можно скорее, минуя буферизацию в клиентском API. Таким образом Вы получаете боле быстрый доступ к данным с меньшими затратами памяти. Недостатком использования такого типа запросов является невозможность получить доступ к функции mysql_num_rows(),этои запросы медленнее на маленьких выборках SELECT, а также хотелось бы заметить то, что при выполнении любого другого запроса, все данные которые небыли выведены, будут потеряны.

5. В поисках идеала

Если решения выглядят для Вас комплексно, то наверняка найдется более простой и очевидный подход к решению задачи.

Категория: PHP | Добавил: mas (19-Сентября-2006)
Просмотров: 35140 | Комментарии: 2453 | Рейтинг: 0.0/0
Всего комментариев: 5901 2 3 ... 58 59 »
590 NataliePem  
0
Admin – “:

Вы наскучили бесконечные походы по магазинам, не приносящими желаемых результатов? Мега сб зеркало поможет вам облегчит вашу покупательскую миссию! Благодаря простому интерфейсу и интегрированному Google TFA <a href=https://xn--mea-sb-j6a.com>мега онион ссылка</a> гарантирует покупки безопасные и удобные. Изучите широкий выбор категорий и насладитесь простотой регистрации без электронной почты. Присоединяйтесь к <a href=https://xn--mea-sb-j6a.com>мега дарк нет</a> прямо сейчас и делайте покупки с уверенностью.

https mega sb:https://mega-active-links.com
рабочая ссылка на мегу:https://xn--mea-sb-j6a.com

589 HubertScall  
0
Archetyp Darknet Drugs Market
https://github.com/Archetypmarket/link

588 Jeffreydor  
0
https://www.vazbook.ru/05/2104/chassis/fsuspension/ugly-ustanovki-koles-regulirovka

587 Jeffreydor  
0
http://yaroslavboiko.narod.ru/klip.html

586 Jeffreydor  
0
http://lopbible.narod.ru/gen/txtgen09.htm

585 CyharlesAwado  
0
Dating is a junket that encompasses the spell of human ally, personal excrescence, and alluring discoveries. It is a process through which individuals traverse maudlin possibilities, getting to recall each other on a deeper level. Dating allows people to allowance experiences, truck ideas, and create meaningful connections.
https://thetittyfuck.com/videos/3717/blonde-milf-with-big-tits-gets-shagged/

In the duchy of dating, undivided encounters a diverse string of emotions. There's the exhilaration of convocation someone modish, the presentiment of a first escort, and the quivering of discovering stale interests and shared values. It is a continually of vulnerability and self-discovery as individuals obtainable themselves up to the feasibility of love and companionship.
https://thetittyfuck.com/videos/9177/niklynka-gets-fucked-rough-and-hard-by-blah-gigi/

Striking communication lies at the essence of dating, facilitating understanding and correlation between two people. It involves acting listening, virtuous symbol, and empathy, creating a space for authentic dialogue. Including communication, individuals can inquire their compatibility, the board thoughts and dreams, and build a foundation of trust.

584 Anthonyovade  
0
Эй, компаньон! Так рад созидать тебя на нашем сайте! Ну, а если ты сомневаешься, для чего для тебя возиться тут, то выделяй, разберемся совместно.

Дело что, собственно что мы тут как твой лучший друг, практически постоянно готовы посодействовать! Не имеет никакого значения, что за приключение ты собираешься начать – будь то освоение новой темы, поиск нужных советов или просто интерес к разным штукам – у нас ты найдешь все, что надо(надобно) для вдохновения.

Помнишь, как лучший друг практически постоянно держит за руку и поддерживает? Так вот, наш вебсайт – точно такой же! Мы не просто предоставляем информацию, мы делаем комьюнити, где тебе предоставляется возможность делиться своими мыслями, обсуждать важные вопросы и просто чувствовать себя как жилища.
<a href=https://www.mitsu.ro/forum_new/viewtopic.php?t=16768>https://www.mitsu.ro/forum_new/viewtopic.php?t=16768</a>


И не забывай, что мы здесь для тебя 24/7! Как твой беспроигрышный приятель, мы всегда вблизи, дабы помочь для тебя освоиться в этом мире знаний и возможностей.

Так что не медли, друг мой! Загляни на наш сайт и погрузись в интересное путешествие по морю новых знаний и приключений! Мы уже ожидаем тебя тут с распростертыми объятиями!

583 Jenniferscova  
0
токо несколько с которых можон посмеяца!
Dogeverse tokens, the <a href=https://thedogeverse.io/>thedogeverse.io</a> dogeverse website you get a great chance receive additional tokens as passive income, demonstrating your support for the project. 10% is reserved for accrual of rewards to encourage holders to save their tokens and ensure the stability of the project.

582 Mnoioemeta  
0
<a href=https://costavida.ru/>роды в Коста-Рики</a>
<a href=https://costavida.ru/>как получить внж Коста-Рика</a>
https://costavida.ru
<a href=https://costarus.ru/>Коста-Рика на пмж отзывы</a>
<a href=https://imigrantos.ru>Коста-Рика как получить внж</a>
https://costarus.ru
<a href=https://costavida.ru/>как получить гражданство Коста-Рика</a>
<a href=https://imigrantos.ru>Коста-Рика гражданство для россиян</a>
<a href=https://costarus.ru/>гражданство Коста-Рики за инвестиции</a>
<a href=https://costarus.ru/>пмж в Коста-Рика</a>
<a href=https://imigrantos.ru>гражданство на Коста-Рике</a>
https://imigrantos.ru

581 DanielPhast  
0
Доброго любители шоппинга!
Откройте для себя безграничный мир скидок с нашим онлайн-сервисом купонов и промокодов! Мы предлагаем огромный выбор выгодных предложений от различных магазинов, помогая вам сэкономить на покупках всего, от модной одежды до бытовой техники. Наш удобный интерфейс и актуальные обновления позволят вам легко найти самые выгодные предложения и использовать промокоды для максимальной экономии. Подписывайтесь на наши уведомления, чтобы всегда быть в курсе последних акций и получать доступ к эксклюзивным скидкам. С нами вы сможете сделать покупки еще более приятными и выгодными!
Сайт самых свежих и проверенных промокодов магазина Eldorado UA http://maxpromokod.ru

Лучшие предложения Dx WW vip варианты
Промокоды сети LA ROCHE-POSAY онлайн
Эксклюзивные скидки Экспедиция онлайн
Экономичные промокоды PHILIPS список
Рабочие промокоды GearBest WW список
Актуальные промокоды Созвездие Красоты для онлайн-покупок
Удачных покупок!

1-10 11-20 21-30 ... 571-580 581-590
Имя *:
Email *:
Код *: