【问题标题】:Benchmarking comet applications彗星应用基准测试
【发布时间】:2011-09-25 07:59:46
【问题描述】:

我目前正在写我的硕士论文。它是关于实时网络应用程序的。 现在我想将 Node.js 与长轮询进行比较。

我知道一些基准测试工具,例如 ab、autobench 等,但这些工具并不能真正测试应用程序。一旦他们向服务器发出请求,就会处理该请求并发出一个新请求。我需要的是一个基准测试工具,它可以在网页上“停留”更长时间,以便模拟真实的人。

例如:我在 Node.js 和长轮询 (PHP) 中都进行了演示聊天。现在我想用 100 个同时保持聊天约 30 秒的人来测试它。

有人对我如何实现这个目标有一些建议吗?

提前谢谢你!

【问题讨论】:

  • 您无法将软件堆栈 (node.js) 与技术(长轮询)进行比较。这完全是愚蠢的!我认为您不了解 node.js 的真正含义。以及用 PHP 实现的长轮询?最糟糕的想法,PHP 不是为此而生的,所有解决方案都是丑陋的黑客。
  • @TobiasP。我想你误解了我的目标。我完全知道 Node.js 是什么。我的目标是创建例如使用 node.js 的演示应用程序和使用 PHP 的相同演示应用程序(长轮询或短轮询)。然后我想比较两者,看看我想在我的实际项目中使用什么技术。另外,如果不使用 PHP,那我应该如何实现长轮询呢?

标签: node.js benchmarking long-polling


【解决方案1】:

现在我想将 Node.js 与长轮询进行比较。

长轮询本身是一种与平台无关的 Web 推送技术,因此您可以将用 node.js 制作的长轮询应用程序与用 PHP 制作的类似应用程序进行比较。

我需要一个能够“留在”网页上的基准测试工具 更长的时间,所以它会模拟真实的人。

您可以创建另一个模拟客户端连接的服务器应用程序,但是此应用程序不应与您的长轮询服务器应用程序托管在同一台机器上,以便在客户端和服务器之间实现“接近真实”的延迟。即使这种方法也可能无法为您提供与“真正的人类”客户端一样的确切环境(因为模拟客户端连接的服务器应用程序将位于同一来源,并且还因为名言 “没有像生产那样的测试”),但它可以为您提供粗略的环境来测试您的长轮询服务器以收集一些基准数据。例如 socket.io 有this kind of application 用于模拟各种浏览器传输。

【讨论】:

  • 我想我找到了另一个解决方案:selenium RC (seleniumhq.org/projects/remote-control)。剩下的唯一问题是当我想用 100 个客户端对此进行测试时,selenium 将在客户端机器上打开 100 个浏览器会话。我需要找到一种方法来 a) 在后台运行它 b) 将它分布在多台机器上。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-02
  • 2011-07-02
  • 1970-01-01
  • 2011-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多