衡量客户的表现

时间:2011-08-25 20:48:37

标签: javascript performance

我目前正在研究任何方法来收集有关客户端计算机性能的分析/指标到我们的webapp。该应用程序非常ajax,我们希望收集一些关于客户机器运行情况的统计数据。

我们不一定要在整个应用程序中放置性能监控代码(由于很多原因,这可能不太可行)。相反,我们希望能够在用户提交反馈时运行某种测试,或者让我们了解他们的浏览器/计算机的性能。

这对于研究来说是一个有点棘手的问题,因为它不断提出有关分析等的讨论。这显然是有用的,但只是因为我们的开发机器被大量制服。我们希望得到客户所连接的机器类型的一些指标。

是否存在任何类型的库/框架或最佳实践?到目前为止,我最好的办法是通过JS运行某种CPU密集型流程几秒钟,并以这种方式衡量性能......

想法或建议?可能是一个有趣的讨论。

2 个答案:

答案 0 :(得分:2)

这是我们监控和分析客户端使用数据的方法......

  • 使用Google Analytics捕获有关用户的信息(平台,浏览器,连接速度,网站使用情况等)

  • 使用Google Webmaster Tools获取其他网站统计信息和优化建议

  • 使用Pagespeed插件分析/微调高音量和/或慢速页面

  • 使用Apache ABJMeter - 针对高容量页面运行基本负载测试

答案 1 :(得分:0)

这是一个有趣的问题,因为您在他们的计算机上调出了大多数开发人员资料。除了在您的代码中放置性能分析器之外,我不确定是否还有其他方法。您提出的有趣的部分是基于用户的反馈,而不一定是一直发送到服务器。

我们可以开发一个基本上收集的Profiler javascript类:

  • 功能名称
  • 网络往返时间
  • 总功能执行时间
  • UserMachineProcessingTime =总功能执行时间 - 网络往返
  • 其他有用信息(类似于YSlow或类似工具提供的信息)

当你提到他是基于用户反馈时,我们不需要在每个函数被调用时始终发送这些信息(这使得应用程序非常健谈)。然后我们在客户端汇总这些信息,并可能将其存储在某个地方(可能使用HTML5本地存储?)

只有当用户同意提交效果配置文件时,我们才会将此信息发送到您获取所需数据的服务器。如果我们注意到“我们注意到您的表现低于我们的普通用户的表现,那么用户的反应也会很有趣。您是否希望发送您的表现资料以便我们学习并使其更好?” (需要不同的措辞,我对此很不好,但这基本上就是消息)。说“是”后,配置文件会发送已收集的汇总信息+ Javascript可以收集的其他信息(用户代理等)。当然,问题是有多少用户会选择发送他们的个人资料信息,但这是我们可以尝试的一种方法。