- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Решил подключить к сайту функцию определения времени генерации страницы.
Что-бы самому долго не думать, взял первую попавшуюся в интернете. Установил - работает.
Но на домашнем компьютере у меня главная страница генерируется 0.02 секунды. А на выделенном сервере - 0.46 секунд. Есть у меня еще одна очень тяжелая страница. На домашнем компьютере генерируется 0.37 секунд - а на хостинге - 39 секунд (350 кб).
Спецификации сервака (дедик) - Intel P4 2.4 Ghz 1024MB.
Server Load 0.28 (1 cpu)
Memory Used 17.3 %
В чем может быть загвоздка?
Сделав первый шаг сделайте и второй. Расставьте свой секудомер по всему коду и посмотрите какая его часть выполняется дольше всего. Обычный анализ, то есть продвижение от общего к частному.
А что, для PHP нет никаких профайлеров, обязательно самому писать нужно?
а что такое профайлер?
Начал разбираться на примере главной страницы. Методом исключения определил, что увеличение времени генерации страницы делает!!! банальная часть HTML кода. Т.е. если часть HTML-кода убираем - время генерации страницы 0.02 секунды. Возвращаем обратно - 0.49 секунд. Мистика? Или что это может быть?
Вы некорректно сформулировали вопрос. HTML код не выполняется, выполняется PHP код. Поэтому надо детально разбираться с тем, как Вы отлаживаете приложение, что именно Вы комментируете и так далее. Хотя есть ненулевая вероятность, что увеличение размера файла со скриптом вызывает увеличение затрат интерпретатора по его парсингу. Но чтобы в разы - сомневаюсь.
Профайлер - это некое приложение (в общем случае), которое показывает время выполнения отдельных процедур (строк, модулей, скриптов) и позволяет оптимизировать код не вслепую.
Я не спец по PHP, поэтому может кто из знатоков подскажет что-то еще, но в Гугле по запросу "PHP profiler" я сразу нашел вот такой бесплатный инструментик: http://www.semanticdesigns.com/Products/Profilers/PHPProfiler.html (скриншот вот тут - http://www.semanticdesigns.com/Products/Profilers/PHPProfilerExample.gif). Мне кажется начинать нужно вот с чего-то подобного. Детально выясните где порылась собака, а уже затем выясняйте отчего она там порылась.
Пооткрывал различные страницы.
Действительно, если размер даже простого текста на странице увеличивается, то время генерации страницы сразу увеличивается в несколько десятков раз. Чем больше размер генерируемого HTML, тем больше время генерации. Т.е возьмем например один и тот же скрипт. когда он генерирует страницу для раздела где только 1 позиция - 0.78 секунд. Где 10 позиций - уже 2.7 секунды. Где 350 позиций - 39 секунд.
Причем на домашнем компьютере - все ок.
Ergo, здесь много факторов. Может тупить php, может апач. Нельзя вот так по железу судить.
Какие процессы, какие нагрузки?
Ну и страничка тоже нормальная такая 350К ;)
pelvis,
Факторов много. Если тупит апач или пхп, то это дело нужно вылечить. Но кто крайний и как это вылечить. Нужно выяснить причину. Вот провел небольшое исследование разных страниц:
Например страница #1 (3 запроса к БД, размер HTML кода на выходе - 14Kb)
на домашнем компьютере генерируется 0.049201
на дедике - 0.490975 секунд (т.е. в 10 раз медленнее)
страница #2 (3 запроса к БД, 300Kb)
на домашнем компьютере генерируется 0.569938
на дедике - 39 секунд (т.е. в 68 раз медленнее)
страница #3 (280 запросов к БД, 80Kb)
на домашнем компьютере генерируется 1.01 секунд
на дедике - 10.366816 (т.е. в 10 раз медленнее)
страница #4 (34 запроса к БД, 10Kb)
на домашнем компьютере генерируется за 0.568850 секунд
на дедике - 0.024127 (т.е. в 23 раза быстрее)
Для интереса взял удалил из страницы #1 часть HTML-кода (уменьшил ее выход на 1.5Kb) - время генерации уменьшилось в 10!!! раз.
Т.е. чем тупо больше страница, пусть даже совсем без запросов к базе данных, тем дедик медленнее ее генерирует!
В чем может быть проблема?
Дело в апаче, скорее всего. Он же читает и отдает заголовки и прочее, прочее, прочее.
Тогда вопрос: какой размер БД дома и на дедике?
Дело в апаче, скорее всего. Он же читает и отдает заголовки и прочее, прочее, прочее.
Тогда вопрос: какой размер БД дома и на дедике?
На дедике база конечно раз в 50 больше.
А время передачи страницы во время генерации включается или нет?