Ответ 1
Yslow - это инструмент (расширение браузера), которое должно вам помочь.
YSlow анализирует веб-страницы и почему они медленны на основе Yahoo! правила для высокопроизводительных веб-сайтов.
Я пытаюсь количественно определить "медленность сайта". В прежние времена вы просто следили за тем, чтобы ваш HTML был легким, оптимизированы изображения и серверы не перегружены. В высокопроизводительных сайтах, построенных на основе современных систем управления контентом, существует гораздо больше переменных: сторонняя реклама, трекеры и различные другие выноски, производительность CDN (достаточно интересно, иногда сети доставки контента ухудшают ситуацию), выполнение javascript, перегрузка css, а также всевозможные проблемы на стороне сервера, такие как длинные запросы.
Очевидным ответом является то, что каждый разработчик очищает кеш и постоянно смотрит на "чистый" раздел плагина Firebug. Какие другие способы измерения "перетаскивания сайта" вы использовали?
Yslow - это инструмент (расширение браузера), которое должно вам помочь.
YSlow анализирует веб-страницы и почему они медленны на основе Yahoo! правила для высокопроизводительных веб-сайтов.
Firebug, должен иметь расширение для веб-разработчиков Firefox, может измерять время загрузки различных элементов на вашей веб-странице. По крайней мере, вы можете исключить CSS, JavaScript и другие элементы, занимая слишком много времени для загрузки.
Если вам нужно уменьшить время загрузки JavaScript и CSS, в Интернете есть различные компрессоры JavaScript и CSS, которые просто вынимают из них ненужный текст, например, символы новой строки и комментарии. Конечно, держите обычную версию на стороне ради развития.
Если вы используете PNG, я недавно столкнулся с оптимизатором PNG, который может уменьшить размеры PNG под названием OptiPNG.
"Время загрузки страницы" на самом деле нелегко определить вообще. Это зависит от используемого вами браузера, поскольку разные браузеры могут делать больше запросов параллельно, потому что javascript имеет разные скорости в разных браузерах, а время рендеринга отличается.
Поэтому вы можете реально измерить истинное время загрузки страницы, используя интересующий вас браузер. Конец загрузки страницы также может быть трудно определить, потому что может возникнуть запрос Ajax после того, как все будет видно на странице. Учитывает ли это загрузку страницы или нет?
И последнее, но не менее важное: время загрузки реальной страницы может не иметь большого значения, потому что "воспринимаемая производительность" имеет значение. Для пользователя важно то, когда у sHe достаточно информации для продолжения.
Я не знаю ни малейшего способа (по крайней мере, не могу вам сказать:]), который автоматически измеряет ваши загруженные страницы.
Используйте AOL Pagetest для IE и YSlow для firefox (ссылка см. выше), чтобы получить "чувство" для вашего времени загрузки.
Получите собственный прокси-сервер отладки (я рекомендую Charles)
Не только вы сможете увидеть полное разбиение времени отклика/размеров, вы можете сохранить данные для последующего анализа/сравнения, а также скрипки с запросами/ответами и т.д.
(Редактирование: поддержка Charles для отладки SOAP-запросов стоит того, что ее доля в условно-бесплатном доступе - это спасло меня на полтора дня потери волос на этой неделе!)
В прошлый раз, когда я работал на высокообъемном веб-сайте, мы сделали несколько вещей, в том числе:
Если вам нужен быстрый взгляд, скажите в первом приближении, я бы пошел с YSlow и посмотрел, какие основные факторы влияют на время загрузки страницы в вашем приложении.
Я обычно использую webpagetest.org, который вы можете использовать для выполнения тестов производительности из разных мест, в разных браузерах (хотя только для msie 7- 9), с разными настройками (количество итераций, скорость соединения, первый запуск и второй визит, исключая конкретные запросы, если хотите, учетные данные, если необходимо,...).
результат очень подробный отчет о времени загрузки страницы, в котором также содержится информация о том, как оптимизировать.
это действительно отличный (бесплатный) инструмент!
Хорошо, назовите меня старомодным, но..
time curl -L http://www.example.com/path
в linux:) Кроме этого, я большой поклонник YSlow, как упоминалось ранее.
PageSpeed - это инструмент онлайн-проверки Google, который является очень точным и надежным:
Если вы используете asp.net, вы можете использовать Trace.axd.
Yahoo предоставляет yslow, который отлично подходит для проверки javascript
YSlow, как указано выше.
И объедините это с Fiddler. Хорошо, если вы хотите увидеть, какие объекты страницы занимают наибольшую пропускную способность, которые сжимаются на сервере, неожиданные круглые поездки и то, что кэшируется. И это может дать вам общее представление о времени обработки в клиентском веб-браузере по сравнению с временем между сервером и клиентом.
Тест Apache. Используйте
ab -c <number of CPUs on server> -n 1000 url
чтобы получить хорошее приближение того, насколько быстро ваша страница.
В Safari Network Timeline (доступно в меню "Разработка", которое вы должны специально включить) дает полезную информацию о времени загрузки отдельных компонентов страницы, а также показывает, когда каждый компонент начал загружаться.
Yslow - это хорошо, и HttpWatch для IE отлично подходит. Тем не менее, оба пропускают самую важную метрику для пользователя "Когда страница - над слоем - готова для использования пользователю?". Я не думаю, что все еще было решено...
Существует несколько способов определить время отклика, но задача всегда заключалась в том, как измерить время рендеринга, которое тратится в браузере.
У нас есть контролируемый этап тестирования, в котором мы используем несколько автоматизированных инструментов для тестирования приложения. Одним из результатов, которые мы генерируем из этого теста, является трассировка скриптов для каждой транзакции (щелчок). Затем мы можем проанализировать трассировку скрипача, чтобы понять Время последнего байта и вычесть его с общим временем, которое сделала страница.
Что-то вроде этого 1. A = Общее время отклика, измеряемое автоматизированным инструментом (в нашем случае мы используем QTPro) 2. B = время до последнего байта (сервер + время сети, из трассы скрипача) 3. C = A-B (приблизительное время рендеринга или время, проведенное в браузере)
Все вышеизложенное, которое я объяснил, можно сделать стандартным процессом тестирования и завершением теста, мы могли бы генерировать распад времени, затрачиваемого на каждый уровень, например. время рендеринга, время сети, вызовы базы данных и т.д.