
Что такое скорость загрузки Web страницы? Это время, за которое пользователь получает полностью загруженную страницу.
От чего зависит это время? От того, насколько долго запрос пользователя обрабатывается на сервере. Но не только.
Сегодня типичная Web страница - это несколько десятков картинок, парочка CSS файлов, до десятка JavaScript файлов и HTML размером в 50…100 Кб. И для загрузки каждого из этих компонент браузер посылает на сервер отдельный запрос.
Ясно, что загрузка одной только странички, сгенерированной на серверной части (на Вашем PHP, Python, ASP и т.п.) займет малую часть времени. Большинство времени и ресурсов отнимет загрузка всех остальных компонент страницы.
Клиентская оптимизация призвана уменьшить время полной загрузки страницы.
Читать далее…

PHP, на сегодняшний день, это одна из самых популярных платформ для создания Web приложений. Нет смысла в очередной раз упоминать о многочисленных монстрах современного интернет, основой которых служит PHP.
PHP - достаточно производительная платформа (если сравнивать с альтернативными решениями, хотя все очень зависит от реализации), к тому же является масштабируемой (опять же, если реализация не хромает). Вопрос производительности и масштабируемости - это конечно дело приложения и его архитектуры, но тем не менее существуют некоторые советы, позволяющие сделать Ваше приложение более эффективным.
В этой статье мы рассмотрим общие практики и советы при построении нагруженных систем на основе PHP.
Читать далее…

Создано на wordle
Эта картинка обычно отражает мысли человека, перед которым стоят два факта:
- Система растет
- Производительность падает
Закапываясь в проблемы производительности и масштабирования, мы зачастую забываем и путаем что и зачем мы делаем. В этой статье мы вернемся к первым вопросам, на которые необходимо отвечать постоянно, что-бы не збиваться с курса.
Читать далее…
Apache - популярный веб-сервер в интернет, он обслуживает множество серверов и сайтов. Часто возникает необходимость увеличить производительность веб-сервера. Наверное лучший способ это сделать - перейти к схеме frontend+backend, но это может потребовать достаточно серьезных изменений в приложении (например, у вас наверняка отвалятся всяческие индикаторы прогресса аплоада файлов :).
Другой способ - просто увеличить производительность сервера - поставить более быстрый процессор и больше памяти.
Однако и первое и второе требует много времени и ресурсов, так что на первое время можно попробовать ускорить apache путем оптимизации его конфигурации. Существуют оптимизации, которые можно применить только при пересборке apache, другие же можно применять без перекомпиляции сервера.
Читать далее…
SELECT * FROM articles ORDER BY id LIMIT 20000, 20
Что приходит Вам на ум, когда Вы видите такой код? Да, это реализация постраничного вывода на уровне SQL. А еще это выбор результатов для отображения 1000-й страницы.
И Вы сталкиваетесь с тем, что этот запрос работает очень быстро для выборки первых страниц, и невероятно медленно для последних. Почему и как это исправить? Рассмотрим пример для MySQL, хотя описанные принципы применимы для любой СУБД.
Читать далее…
В предыдущей статье мы рассмотрели принцип работы систем очередей сообщений.
В этой статье мы рассотрим пример реализации такого решения на основе PHP и системы MemcacheQ. В качестве приложения выберем распространенную задачу по отправке email сообщений.
Читать далее…
Организация очереди сообщений помогает разбалансировать нагрузку между различными узлами сети, избавиться от единой точки отказа (SPOF), выполнять бизнес-логику приложения асинхронно, повысить скорость ответа системы и многое другое.
Что же такое очередь сообщений? Как именно она позволяет решать все перечисленные задачи? Как организовать очередь сообщений? Какие достоинства, недостатки и сложности такого решения? О всем этом далее:
Читать далее…
Все мы слышали о Facebook.com и все можем только представляеть себе те объемы данных, с которыми вынуждены работать бекенды этой системы.
При их объемах они упираются в ограничения стандартных решений - будь то цена либо производительность. Как же они решают задачу управления данными и их хранения?
Читать далее…
С ситуацией, когда СУБД “работает медленно”, сталкиваются многие разработчики. И это относится не только к высоконагруженным системам. Как обычно себя ведут разработчики? Начинают оптимизировать запросы, вслепую. В итоге эта работа приносит вовсе не ощутимый результат, либо ускоряются только отдельные части приложения, но проблемы остаются в других местах.
Для того, что-бы провести оптимизацию запросов качественно, необходимо использовать системы профилирования, которые могут явно показать проблемные места. С профилирования и нужно начинать оптимизацию. В этой статье мы рассмотрим пример системы профилирования запросов для СУБД Postgres, которая называется PgFouine.
Читать далее…
PgFouine - система профилирования запросов для СУБД Postgres
Система работает, как анализатор логов, собирает различную статистическую информацию и строит расширенные отчеты. PgFouine написана на php, поэтому является не зависимой от платформы утилитой.
Читать далее…
Комментарии