|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Хабрахабр: PHP / Блог / Захабренные/Записи в блоге |
|
Хабрахабр: PHP / Блог / Захабренные
Голосов: 1 Адрес блога: http://habrahabr.ru/blog/php/ Добавлен: 2008-06-12 19:52:35 блограйдером ZaiSL |
|
Мониторинг производительности PHP-кода с помощью Pinba
2012-08-16 13:14:44 (читать в оригинале)
Давайте представим себе типичный, набирающий популярность стартап, использующий, например, PHP или Python. Сначала все находится на одном сервере — PHP (или Python), Apache, MySQL. Затем вы выносите MySQL на отдельный сервер, устанавливаете nginx для раздачи контента, возможно, добавляете memcached для кеширования и еще несколько серверов приложений…Со временем число серверов будет расти, и рано или поздно вы зададитесь вопросами
«А что сейчас вообще происходит с системой? Как часто выполняется тот или иной скрипт и как долго? Какие операции занимают большую часть времени?» Системы мониторинга типа Zabbix дают лишь общую, поверхностную картину состояния приложения.
Чтобы получить ответы на эти вопросы, в Badoo был разработан сервиc мониторинга и статистики в реальном времени — Pinba. В данной статье мы расскажем о нашем опыте использования его для мониторинга и профайлинга нашей системы.
Читать дальше →
Тэги: badoo, performance, php, pinba, баду, блог, высокий, компания, мониторинг, производительность, профайлинг, статистика
Постоянная ссылка
Использование Composer для генерации автозагрузчика, поддерживающего legacy-код
2012-08-16 08:11:17 (читать в оригинале)В настоящий момент во многих проектах с богатым наследием код представляет собой смесь из различных подходов, от PHP 3 до PHP 5.
В PHP 3 мы использовали библиотеки функций, файлы подключения к базе данных, файлы переопределения настроек php.ini и так далее.
В PHP 4 и 5 мы создавали классы, именование файлов которых было сильно кастомизировано, от package/class.myclass.inc до Package/MyClass.php.
В эпоху PHP 5 мы получили стандарт PSR-0, описывающий стандарт именования файлов классов PHP для повышения совместимости их автозагрузки.
Код постепенно начал превращаться в не очень приятное месиво из require_once и spl_autoload_register. Прямо скажем, месиво не сильно управляемое и время от времени приводящее к фатальным ошибкам «функция не существует» или «класс не существует» при разработке нового кода.
И вот, внезапно к нам на помощь пришёл менеджер зависимостей Composer (github-репозиторий).
Хочу подчеркнуть, что Composer не является только лишь генератором автозагрузчика. Задачи, которые он выполняет намного более широки и интересны.
Давайте посмотрим, как мы можем применить Composer для генерации автозагрузчика для нашего legacy-кода.
Читать дальше →
Отчёт о неудачной попытке получить заявленную эффективность от prepared statements
2012-08-15 12:05:00 (читать в оригинале)Рассказывая в своей статье о типичных заблуждениях, связанных с защитой от SQL инъекций, среди прочих я отметил тот факт, что серверные подготовленные выражения не работают в PHP по заявленному эффективному сценарию — 1 раз prepare(), потом 1000 раз executе().
Ну, то есть, в теории-то они работают — в пределах одного запуска скрипта. Но много ли вы знаете скриптов (написанных профессиональными программистами), которые выполняют кучу одинаковых запросов? Вот я тоже не знаю. Повторяющихся запросов (каких-нибудь множественных апдейтов) — доли процента, а в массе своей запросы уникальные (в пределах одного скрипта).
Соответственно, для нашего уникального запроса сначала выполняется prepare(), потом — execute(), потом скрипт благополучно умирает, чтобы, запустившись для обработки следующего HTTP запроса, заново выполнять prepare()… Как-то не слишком похоже на оптимизацию. Скорее — наоборот.
Но неужели нет способа как-то закэшировать подготовленный запрос между запусками?
И тут меня осенила идея!
Тэги: connection, mysql, mysqli, persistent, php, prepared, statement, веб-разработка, выражение, подготовленный
Постоянная ссылка
[Из песочницы] Реализация паттерна Компоновщик (Composite pattern) на php
2012-08-14 17:15:08 (читать в оригинале)Введение
На определенной стадии изучения серверного программирования мне захотелось написать свой простенький фреймворк. Я рассчитывал, что это поможет более глубоко понять идеологию MVC и Zend Framework в частности. Когда дело дошло до части представления и генерации html я вспомнил о паттерне Компоновщик (Composite pattern). Возможно я несколько исказил его применение, но мысль пошла оттуда.
Читать дальше →
[Из песочницы] Информационные «виджеты» на PHP в Ubuntu
2012-08-14 15:50:40 (читать в оригинале)Всем привет.
Я хочу поделиться с вами идеей написания подобия информационных виджетов на PHP.
Суть заключается в том, что средствами PHP легко граббить или просто получать информацию из интернета (+ личные предпочтения этому языку), после чего эту информацию можно вывести, используя утилиту notify-send, красиво и лаконично в правый угол монитора.
Скажу сразу, что на новаторство я не претендую. Возможно, данный метод может показаться многим довольно глупым, но мне, например, проще посмотреть в угол монитора, чем забивать рабочий стол всякими скринлетами, конки и прочим.
В качестве примера создадим виджет погоды, на основе данных с openweathermap.com.
Читать дальше →
Категория «Блогосфера»
Взлеты Топ 5
|
| ||
|
+1241 |
1261 |
Robin_Bad |
|
+1175 |
1263 |
Futurolog |
|
+1090 |
1094 |
MySQL Performance Blog |
|
+1028 |
1098 |
Ksanexx |
|
+1023 |
1097 |
Refinado |
Падения Топ 5
|
| ||
|
-2 |
511 |
партнерки |
|
-3 |
605 |
Блог о раскрутке и монетизации сайта. |
|
-3 |
86 |
Mandalaй.ru |
|
-4 |
17 |
Выводы простого человека |
|
-4 |
39 |
БЛОГика |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.
