2010-10-05 2 views
12

Я работаю над веб-приложением (на основе Rails 3). И мне действительно не нравится время, необходимое для создания страницы - в зависимости от отображаемых данных она занимает 2,5 и даже 4 секунды.Какое разумное время для создания веб-страницы?

Так что мне просто интересно, какое среднее разумное время для создания страницы в ваших приложениях. Вы говорите, что вы проверяете время генерации, например. это 750 мс и думаю: «Хорошо, это должно быть прекрасно даже без кеширования». Или когда вы видите 1.5sec, вы думаете: «О, Боже мой, пользователь не будет так долго ждать и покинет сайт»

+0

Что делает ваше приложение? – Gumbo

+0

@Gumbo, он отображает различные статистические данные – fantactuka

+0

Очевидно, вы должны попробовать сделать это как можно быстрее, но скорость действительно зависит от того, что вы делаете. Кроме того, сломайте время на части. Например, будет время для доступа к базе данных и время для рендеринга страницы. Какой из них занимает много времени? Если это рендеринг, то вы, вероятно, используете много javascript. Может ли этот javascript быть разделен на ajax-запрос, который загружается после загрузки страницы в браузер. Если это база данных, убедитесь, что вы делаете все, что вам нужно для оптимизации. Желательная загрузка, правильные индексы и т. Д. – sosborn

ответ

13

Существует огромное количество данных исследования относительно времени от запроса до рендеринга и опыта пользователя. Я бы рекомендовал прочитать this useit.com article. Ведь Google интегрированной скорости страницы в результатах по причине;)

В 3 Пределы времени ответа являются сегодня же, когда я писал о них в 1993 году (на основе 40-летнего исследования антропогенными факторами пионеров):

  • 0,1 секунды дает ощущение мгновенной реакции - то есть, исход чувствует, как это было вызвано пользователя, а не компьютер.Этот уровень отзывчивости имеет важное значение для поддержки чувством прямого манипуляции (прямая манипуляция один из ключевых методов GUI для увеличения вовлеченности пользователей и контроля - для больше об этом, см наших принципы Интерфейса дизайне семинара) ,
  • 1 секунда сохраняет поток мыслей пользователя. Пользователи могут ощутить задержки, и, таким образом, знать компьютер генерации результата, но они до сих пор чувствовать себя в управлении общего опыта и что они двигаются свободно, а не ждать на компьютере. Эта степень чувствительности необходима для хорошей навигации .
  • 10 секунд сохраняет внимание пользователя. С 1 до 10 секунд пользователи определенно чувствуют себя во власти компьютера и желают, чтобы это было быстрее, но они могут справиться с этим. По прошествии 10 секунд начинают думать о других вещах, затрудняя тем самым получение их назад на трек после того, как компьютер наконец-то ответил.

10-секундная задержка часто заставит пользователей покинуть сайт немедленно. И , даже если они остаются, для их значение составляет , что делает его менее вероятным, если они преуспеют в решении любых сложных задач.

Как правило, полагайте, что вы всегда должны стремиться к балансу времени оптимизации и времени. Не тратьте дни, оптимизируя ад из одной рутины, когда ваши изображения не сжаты правильно, или ваши скрипты/css не объединены. Да, быстрее - лучше, но 90% -ный выигрыш в создании страницы путем создания смарт-кеша составляет 10% -ный прирост после одной недели, чтобы настроить алгоритм.

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

Теперь некоторые данные; некоторые из последних сайтов, над которыми я работал, использовали DotNetNuke, огромную CMS с открытым исходным кодом и Asp.Net MVC, где вы ближе к металлу. Среднее время страницы со средними запросами db составляло 600-700 миллисекунд для DotNetNuke. Для Asp.net MVC это 70-100 миллисекунд ... Пользователям действительно нравится второй :)

5

На этот вопрос нет «правильного» ответа - чем быстрее, тем лучше. Лично я обычно нацелен на < 200 мс, хотя по опыту я знаю, что достичь этого можно в Rails на каких-то простых приложениях. Попытайтесь выяснить, где ваши узкие места и кешировать то, что вы можете.

Редактировать: похоже, существует некоторая путаница между временем генерации страницы и временем визуализации страницы. Очевидно, что на странице отображается, и на большинстве сайтов, выполняющих такие функции, как сокращение HTTP-запросов, gzipping CSS/JS - это то место, где вы можете получить большую часть своих быстрых побед. Но если сама страница может занять 4-5 секунд, то вы, вероятно, правы, что ваше приложение должно начать.

+0

Я думаю, что одним из самых важных моментов является время ** воспринимаемого ** пользователя. В настоящее время множество оптимизаций, применяемых на веб-сайтах, не учитывают код, а скорее сосредоточены на асинхронной загрузке javascript и параллельной загрузке ресурсов. – samy

0

Измерьте свой рейтинг apdex и посмотрите, как он работает. Это даст вам приблизительную оценку. Оттуда вы можете решить, как вы хотите повысить производительность.

Это также зависит от вашего сайта; системное приложение для бизнеса или программного обеспечения в качестве услуги (SaaS)? Если это системное приложение, пользователи вынуждены использовать его для выполнения, можно договориться. Если это SaaS, то чем выше ваш показатель apdex, тем больше вероятность того, что вы потеряете интерес своего пользователя.

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

Вот немного больше информации: http://apdex.org/blog/?p=630

2

Это зависит от того, ничего не отображается в течение 2,5-4 секунд, или что пользователь уже видит (часть) страницы с самого начала, и завершения загрузки полностью через 2,5-4 секунды. В этом случае пользователь не испытывает нагрузку 2,5-4 секунды. Возьмите сайт http://www.nytimes.com/; Я вижу большую часть его сразу, но, по словам веб-инспектора, для его полной загрузки требуется 1,94 секунды.

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

-4

Мое личное правило - ни одна страница не должна занимать более 0,05 секунды, или вы в беде.

Пока вы пишете правильный код, вам не нужно тратить много времени на оптимизацию, чтобы оставаться под 0,05.

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

+0

Вау, у вас есть сайты, которые так быстро, ноточно! Думаю, вы должны кэшировать ад из своих запросов. Над чем вы работаете, безбортность? – samy

+0

Из любопытства, можете ли вы лично рассказать разницу между .1 секундами и 0,5 секунд? Если да, то действительно ли разница вас беспокоит? Я спрашиваю только потому, что .05 кажется невероятным произвольным числом. – sosborn

+0

Да, это имеет значение, если вы начнете получать реальную нагрузку. Это не baremetal, это просто легкий вес и тайники памяти. – BarsMonster

Смежные вопросы