什么是对用户PC,PHP或JS进行基准测试的最佳方法?

时间:2012-01-19 21:09:06

标签: php javascript jquery codeigniter

PHP - 带有Codeigniter的Apache

JS - 典型的jQuery和内部库

问题:确定(不强制下载)用户的PC能力和/或病毒问题

为什么:我们推出了一种主要用于诊所的软件,但可以在家中使用,但是,我们需要知道,在他们去我们的主管之前,如果他们的电脑可以处理我们基于网络的浏览器服务软件的巨大变化。

进展:到目前为止,我们已经提出了一种测试dl速度的不错方法,但就是这样。

我们做了什么:在php中我们创建了一个2.5Gb的数据数组,以便在视图中发送给用户,从那里视图计算获取数据所需的时间和然后从这个时候减去php基准测试,以获得上传/下载时间的参考点。这还不够。

我们的一些(本地)用户被发现有“蹩脚”的电脑或被病毒感染,这可能导致2个问题。 (1)他们在我们程序中的预成型任务中崩溃,或者(2)他们的病毒'可能试图注入我们的js因此创造了一种糟糕的体验,这可能使我们看起来对平均水平不好(没有受过如何教育这些东西)用户,因此伤害了“我们的”诚信。

我已经做了一些谷歌搜索,但我发现大多数插件或建议论坛/博客只是提供方法来衡量你的JS的速度,这是不够的。我需要一个简单的代码(没有包含可视化界面,我发现另一个问题,一个很好的js lib做了这个,但需要几天才能删除所有作者的个人可视代码),这将允许我测试以下3件事:

  1. 用户的数据传输率(我认为我们已经覆盖了这一点,但如果提供更好的方法,我将不会将其排除在外)
  2. 用户的处理速度,一般计算机的速度
  3. 通过恶意软件,广告软件以及可能对用户体验有害的任何可能的感染测试
  4. 我们不打算做什么:修理他们的电脑!我们不关心他们是否有问题,如果他们有太多问题我们只是不想带他们进入我们的网站。如果他们不能在家做,那么他们会被推荐去他们最近的当地办事处“内部”使用这个软件。

    进一步说明

    我们知道你不能用PHP测试用户端的东西,我们不是那么愚蠢,提到PHP是因为它在确定连接速度或提供可能做我们想要的事情的脚本时仍然有用。此外,这不是网上任何人注册和使用的软件,如果你在网上找到它,除非你是一个特定的诊所附属,并有一个登录名,什么不是,你不能使用视线如果你不相信,这是非法的。我还不能透露很多信息,因为视线尚未生效。我可以说,它主要是由诊所/办公室用于客户预先完成某项任务。如果他们没有时间/运输/或其他需要在家中进行,则可以选择。然而,如果他们的家用电脑没有“达到鼻烟”,那对他们来说只不过是一个问题,并且他们要做的2小时任务将成为4-6小时的噩梦。因此,我是我最喜欢的任务之一,询问是否有人可能曾经有过这方面的经验,并且可能知道测试用户PC的好方法,以便他们可以获得最佳分辨率,或者在家里进行(因为他们的PC是合适的)或被告知他们需要去他们当地的办公室。希望这清楚地说明了我们可以克服“愚蠢”的答案。我需要一个真正可行的解决方案和/或建议。

2 个答案:

答案 0 :(得分:2)

PHP(几乎)无法访问有关客户端计算机的信息。数据传输可以像计算机速度一样容易受到网络速度的限制。虽然如果你不关心哪个是限制器,它可能会起作用。

JavaScript可以可靠地检查一组操作的运行速度,并将它们发送回服务器......但这就是它。出于安全原因,它无法访问文件系统。

编辑:好的,有了这个版本,我想我可以提供一个真正的建议 - 基本上,妥协。您无法收集足够的信息以绝对保证用户的计算机和连接足够,但您可以大致了解。

正如有人建议的那样,使用10MB-20MB的文件和几个较小的文件来测试实际传输速率;这将为您提供合理的估算值。然后,使用JavaScript来测试他们的系统速度。但是,不要只坚持一个测试,因为这可能严重依赖于浏览器。研究哪些测试最能准确表示跨浏览器的功能;诸如循环数组,操纵(不可见)元素和复杂数学之类的东西。如果浏览器之间存在显着差异,则使用不同的阈值; PHP 确实知道他们正在使用什么浏览器,因此您可以根据具体情况为系统提供不同的“足够好”的评级。按版本限制(例如,完全拒绝IE6)可能会有所帮助。

最后......通知用户。轻轻地。首先让他们知道,“嘿,这将是一个测试,看你的网络连接和计算机是否足够快,以便使用我们的系统。”如果失败了,告诉他们哪个部分,并给他们一个警告。 “嘿,这真的没有我们推荐的那么快。你真的应该去当地诊所执行这项任务;如果你选择继续,可能需要比预期更长的时间。”希望在那时,用户会意识到任何问题都在他们身上,而不是在你身上。

答案 1 :(得分:0)

你听到的是正确的,没有办法基于Javascript有效地对机器进行基准测试 - 特别是因为javascript引擎主要取决于用户使用的实际浏览器,还有许多其他变量 - 没有文件系统权限等。一台计算机几乎不会让浏览器子进程压缩自己,浏览器只会先崩溃。 PHP显然是在服务器端。

System Requirements Lab这样的网站让用户下载一个java applet,在其自己的范围内运行。