Node.js Socket.io 延时



我正在使用Node.js(v0.12.4(和 Socket.io(1.3.2(进行实时交易应用程序。在这种情况下,当响应从 Node.js 发出到 GUI(Socket.Io(时,我面临着一些接近(100 毫秒(的时间延迟。

我不知道为什么在将数据从 Node.js 发送到 GUI (Socket.IO( 时会出现时间延迟。

这发生在生产现场。我们尝试在生产服务器位置调试它也是因为网络延迟。但相同的结果。

请有人帮我吗?

在执行以下操作之前,需要注意一件重要的事情。 计算从后端(服务器端(到前端的时序时 (客户端(您需要在使用相同功能的同一台计算机上运行它 定时水晶。

石英晶体驱动的时序,即使在高质量主板上也具有 彼此之间。

如果您在同一台PC上计算从后端(服务器端(到前端(客户端(的时间延迟时没有发现延迟,那么您最初发现的延迟是由网络连接主板时序晶体中的延迟引起的。这将消除 Node.js 和 Socket.io 作为时间延迟的原因。

基本上,您需要找出延迟发生的位置,然后才能解决问题。

您需要做的是找出导致项目中性能影响最大的原因。为此,您需要隔离每个过程所需的时间。您还需要测量从初始检索数据到发布数据的时间延迟。然后测量每个功能、方法和过程的时间延迟。尝试隔离问题。你需要问什么是花最多的时间做?

为了找出您的性能影响来自何处,您需要执行以下操作。

  1. 了解您的代码需要多长时间才能获得所需的信息
  2. 找出每个信息操作过程在发送数据(即功能/方法(之前需要多长时间......
  3. 发送信息
  4. 后,查找将信息获取到客户端并加载所需的时间。
  5. 将所有时间相加,并确保它等于性能延迟,以确保您拥有隔离性能泄漏所需的所有数据。
  6. 订购每种方法、功能、过程...通过其时间延迟最耗时到最少耗时。当您发现哪些进程导致最大的延迟时,您将能够解决问题......或者至少探索切实可行的解决方案...

下面是一些可用于衡量整个代码性能的工具。

首先:Chrome有一个非常好的工具,可以让你看到每一段执行的代码的性能。

  • https://developers.google.com/web/tools/chrome-devtools/profile/evaluate-performance/timeline-tool?hl=en
  • https://developer.chrome.com/devtools/docs/timeline

第二:性能现在节点包。您可以将其用于开发性能测试。

第三:在js中测量时间/性能的堆栈溢出帖子。

第四:你可以使用像console.time((这样的东西

  • https://nodejs.org/api/console.html
  • https://developer.mozilla.org/en-US/docs/Web/API/Console/time
  • https://developer.chrome.com/devtools/docs/console-api

我发现它正在发生的时间延迟。

一旦我将数据

从客户端套接字发出到节点,我将显示一些警报消息("数据已处理"(。警报消息需要一些时间才能在 GUI 中呈现。

此警报消息阻止从节点到套接字的响应数据。

谢谢你们的帮助伙计们。

相关内容

  • 没有找到相关文章

最新更新