Какой хороший способ профилировать скорость подключения веб-пользователей?

У меня есть клиент, чей желаемый веб-интерфейс графически насыщен; мы хотели бы собрать статистику о средней пропускной способности тех, кто подключается к сайту. Есть простой способ сделать это? «Самая простая вещь, которая могла бы работать» - это компонент Flash или Silverlight, который время от времени загружает файл некоторого размера (скажем, 200 КБ), а затем отправляет результат POST в URI, который сохраняет данные. Это сработает? Должен ли я написать свой собственный или есть простой элемент, который я могу скачать откуда-нибудь?

За пределами сигналов Angular: Сигналы и пользовательские стратегии рендеринга
За пределами сигналов Angular: Сигналы и пользовательские стратегии рендеринга
TL;DR: Angular Signals может облегчить отслеживание всех выражений в представлении (Component или EmbeddedView) и планирование пользовательских...
Sniper-CSS, избегайте неиспользуемых стилей
Sniper-CSS, избегайте неиспользуемых стилей
Это краткое руководство, в котором я хочу поделиться тем, как я перешел от 212 кБ CSS к 32,1 кБ (сокращение кода на 84,91%), по-прежнему используя...
2
0
1 042
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

Ответ принят как подходящий

Я бы посмотрел на Google Analytics. Это простой javascript, который вы включаете на свою страницу, и он использует массивные аналитические базы данных Google, чтобы отслеживать, кто обращается к вашему сайту по каким типам соединений, и все это находится в базе данных, которую они поддерживают.

Вы, конечно, можете написать компонент Flash или Silverlight (или javascript), чтобы загружать файл в фоновом режиме, рассчитывать время и сообщать об этом, но вы, скорее всего, рассердите своих пользователей за то, что они заполнили свои трубки.

Google Analytics не отслеживает и не профилирует потребление полосы пропускания.

Larry OBrien 30.10.2008 20:09

Google Analytics предоставляет анализ скорости пользовательского сетевого подключения. Он доступен в меню Посетители-> Свойства сети-> Скорость подключения.

Adam Ness 31.10.2008 00:00

Ты прав. Я был неправ. Google Analytics - хорошее решение (в данных есть определенное количество «информации, недоступной», но это нормально для наших нужд).

Larry OBrien 31.10.2008 20:53

Для этого не так уж много инструментов.

Вы можете попробовать BrowserHawk (http://www.cyscape.com/products/bhawk/features.aspx). См. http://www.cyscape.com/showbrow.aspx?bhcp=1 и прокрутите вниз до сведений о подключении.

Вероятно, самый эффективный способ - позволить посетителю решать. У вас может быть целевая страница с двумя большими кнопками с надписью «быстрое соединение» и «медленное соединение», и пусть они нажимают одну.

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

Мне это кажется довольно простым.

  1. Возьмите журналы своего веб-сервера и просканируйте для вашей индексной страницы и всех изображений ссылка на эту страницу индекса.
  2. Почувствуйте разницу между последними полная временная метка изображения и отметка времени завершения индекса.
  3. Суммируйте размер всех изображений, которые были полностью загружены (не кешированы если-изменено-с 304-х годов).
  4. Разделите эту сумму на время разница.

У вас должно быть эффективных байтов в секунду для этого Пользователь.

Веб-сервер Apache может регистрировать, сколько времени занимает запрос (в секундах); объедините это с чем-то вроде mod_logio, чтобы узнать, сколько данных вы фактически отправляете клиенту, и определить КБ / сек.

http://httpd.apache.org/docs/2.0/mod/mod_logio.html

http://httpd.apache.org/docs/2.0/mod/mod_log_config.html - ищите '% ... T'

Google прекратил регистрировать скорость подключения пользователей с 2011 года. Вот запись в блоге Google от 23 марта 2011 года -

https://analytics.googleblog.com/2011/03/fond-farewell-to-connection-speed.html

Не прямой ответ, но, возможно, вы решаете не ту проблему.

В зависимости от того, кого вы слушаете, около 60% пользователей веб-сайтов просматривают сайты с мобильных устройств. Мобильные устройства обладают крайне непредсказуемой пропускной способностью - от «неограниченной» в быстрой сети Wi-Fi до «коммутируемого доступа 1990-х годов» вдали от вышек сотовой связи. Если они проводят 50% своего времени в корпоративном Wi-Fi со скоростью 100 Мбит / с и половину своего времени в сотовой сети со скоростью 500 Кбит / с, среднее значение будет плохим показателем их опыта в 50% случаев.

Если вы посмотрите на среднее значение и скажете: «Эй, среднее значение намного превышает 10 Мбит / с, поэтому мы можем предположить, что 1 Мбит / с - это безопасный минимум», ваши пользователи будут испытывать ужасные впечатления в половине случаев.

Кроме того, существует сложная взаимосвязь между размером файла, количеством одновременных загрузок, выполняемых веб-браузером, и субъективным восприятием конечного пользователя. Если у вас есть веб-страница, для которой в общей сложности требуется загрузка 5000 КБ, и она не отображает ничего, пока страница не будет полностью загружена, она будет работать очень медленно. Если вы загружаете элементы постепенно и выполняете ленивую загрузку по мере того, как пользователь прокручивает страницу, сайт будет работать быстро.

Затем вы получаете кеширование браузера - если у вас тяжелый сайт, но вы можете кэшировать много ресурсов в браузере, субъективное восприятие может быть действительно хорошим (после первой загрузки).

Я рекомендую согласовать минимальную пропускную способность, которую ваш сайт будет поддерживать, имея достаточный опыт, и основывать это на производительности мобильной сети на вашем целевом рынке. В странах с хорошим покрытием мобильной связью я бы предположил, что 500 Кбит / с; в странах с широко распространенным 4G я бы поднялся до 1 Мбит / с.

Другие вопросы по теме