Измерение производительности клиентов - PullRequest
6 голосов
/ 26 августа 2011

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

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

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

Существует ли какая-либо библиотека / инфраструктура или лучшие практики для этого?Пока что я лучше всего выполняю какой-то процесс с интенсивным использованием процессора через JS в течение нескольких секунд и измеряю производительность таким образом ...

Мысли или предложения?Может быть интересная дискуссия.

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

вот что мы делаем для мониторинга и анализа данных об использовании клиентов ...

  • используйте Google Analytics для сбора информации о пользователе (платформы, браузеры, скорость соединения, использование сайта и т. Д.)

  • используйте Google Webmaster Tools , чтобы получить дополнительную статистику сайта и предложения по оптимизации

  • используйте Плагин Pagespeed для анализа / точной настройки большого объема и / или медленных страниц

  • используйте Apache AB или JMeter - для запуска базовых нагрузочных тестов для страниц большого объема

0 голосов
/ 26 августа 2011

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

Мы могли бы разработать класс javascript Profiler, который в основном собирает:

  • Имя функции
  • Сетевое время туда-обратно
  • Общее время выполнения функции
  • UserMachineProcessingTime = Общее время выполнения функции в обоих направлениях по сети
  • Другая полезная информация (похожая на ту, что предоставляет YSlow или аналогичные инструменты)

Поскольку вы упоминаете, что его основано на отзывах пользователей, нам не нужно отправлять эту информацию все время, когда вызывается каждая функция (что делает приложение очень разговорчивым). Затем мы собираем эту информацию на стороне клиента и, возможно, храним ее где-то (возможно, используя локальное хранилище HTML5?)

Только когда пользователь дает свое согласие на отправку профиля производительности, мы отправляем эту информацию на сервер, где вы получаете необходимые данные. Было бы также интересно посмотреть, как отреагирует пользователь, если мы представим крошечное сообщение: «Мы замечаем, что ваша производительность ниже, чем у наших средних пользователей. Хотите отправить свой профиль производительности, чтобы мы могли учиться и делать его лучше?» (Нужна другая формулировка, мне плохо с этим, но это в основном сообщение). Сказав «да», профиль отправляет собранную им совокупную информацию + дополнительную информацию, которую может собрать Javascript (пользовательский агент и т. Д.). Конечно, вопрос в том, сколько пользователей захотят отправить информацию в своем профиле, но это один из подходов, который мы могли бы попробовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...