Какой хороший способ профилировать скорость соединения пользователей сети? - PullRequest
2 голосов
/ 28 октября 2008

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

Ответы [ 6 ]

0 голосов
/ 26 июля 2017

Не прямой ответ - но вы можете решить не ту проблему.

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

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

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

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

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

0 голосов
/ 26 июля 2017

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

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

0 голосов
/ 28 октября 2008

Веб-сервер 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»

0 голосов
/ 28 октября 2008

Мне кажется, это довольно легко.

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

Вы должны иметь эффективные байты в секунду для этого пользователь.

0 голосов
/ 28 октября 2008

Существует не так много инструментов, которые делают это.

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

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

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

0 голосов
/ 28 октября 2008

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

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

...