Javascript 衡量客户的业绩

Javascript 衡量客户的业绩,javascript,performance,Javascript,Performance,我目前正在研究任何方法来收集一些关于我们的webapp客户端机器性能的分析/指标。该应用程序在很大程度上是ajax,我们希望收集一些关于客户端机器运行情况的统计数据 我们不一定要将性能监控代码贯穿整个应用程序(出于许多原因,这可能无论如何都不可行)。相反,当用户提交反馈时,我们希望能够运行某种测试或其他东西,让我们了解他们的浏览器/计算机的性能 这是一件需要研究的稍有技巧的事情,因为它一直在引发关于评测等的讨论。这显然是有用的,但仅在一定程度上,因为我们的开发机器已经被压倒了。我们希望获得客户连

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

我们不一定要将性能监控代码贯穿整个应用程序(出于许多原因,这可能无论如何都不可行)。相反,当用户提交反馈时,我们希望能够运行某种测试或其他东西,让我们了解他们的浏览器/计算机的性能

这是一件需要研究的稍有技巧的事情,因为它一直在引发关于评测等的讨论。这显然是有用的,但仅在一定程度上,因为我们的开发机器已经被压倒了。我们希望获得客户连接的机器类型的一些指标

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


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

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

我们可以开发一个探查器javascript类,它主要收集:

  • 函数名
  • 网络往返时间
  • 总函数执行时间
  • UserMachineProcessingTime=总功能执行时间网络往返
  • 其他有用信息(类似于YSlow或类似工具提供的信息)
正如您提到的,his是基于用户反馈的,我们不需要在调用每个函数时一直发送这些信息(这使得应用程序非常健谈)。然后,我们在客户端聚合这些信息,并可能将其存储在某个地方(可能使用HTML5本地存储?)


只有当用户同意提交性能配置文件时,我们才会将此信息发送到服务器,您可以在那里获得所需的数据。如果我们看到一条小消息说“我们注意到您的性能低于我们的平均用户性能。您是否希望发送您的性能配置文件,以便我们能够了解并改进它?”(需要不同的措辞,我不同意,但这基本上是一条消息),那么看看用户的反应也会很有趣。如果回答是,概要文件将发送它收集的聚合信息+Javascript可以收集的附加信息(用户代理等)。当然问题是有多少用户会选择发送他们的个人资料信息,但这是我们可以尝试的一种方法

下面是我们监视和分析客户端使用数据的方法

  • 用于捕获有关用户的信息(平台、浏览器、连接速度、站点使用情况等)

  • 用于获取其他站点统计信息和优化建议

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

  • 使用或-对大容量页面运行基本负载测试


不足以作为答案:我们为此目的创建虚拟机。将其限制在1个cpu和512mb,以及“客户端似乎仍在使用的糟糕的浏览器版本”,然后了解它的反应。设置起来很容易,我认为你应该迫使开发人员经常从最终用户的角度来看待他们的工作。@Eddy:别忘了拨号式带宽不知道它在VM中的工作效果如何(如果有的话),但我在dummynet()上交了好运用于在进行客户端测试时限制网络连接。是的,这是一个有趣的讨论。遗憾的是,我们不能在评测中插入大量代码,因为它主要是我们定制的预购包。另外,我有点担心持续运行评测可能会降低性能,特别是在我们真正感兴趣的情况下:那些拥有糟糕电脑的人。我希望能想出一些相对较短的测试,可以在“反馈部分”的后台运行,从而对客户机的性能有一个基本的了解。