gpt4 book ai didi

node.js - "Hello world"从 Chrome 而非 curl 测量时,Rust 网络服务器比 Node 慢

转载 作者:行者123 更新时间:2023-12-04 04:27:51 29 4
gpt4 key购买 nike

我用 Node.js based 创建了一个存储库和一个 Rocket.rs based里面的网络服务器。
考虑以下步骤:

  • 通过 cargo run --release 启动 Rocket.rs 服务器
  • 通过 node server.js 启动 Node.js 服务器
  • 在 Chrome 中并排打开 http://localhost:8000/(Rocket) 和 http://localhost:8090/(Node)。
  • 打开开发者控制台后,我不断刷新这两个选项卡,并观察到 ​​Node 选项卡总是在 5 毫秒内完成,而火箭选项卡有时需要超过 300 毫秒才能完成:

  • enter image description here
    我也用 actix-web 观察到类似的事情,但程度较小:在这种情况下,如果我没有刷新选项卡大约 5 秒,我只会得到大约 300 毫秒的延迟。如果我不断刷新它,那么请求会在 5 毫秒内完成。
    有趣的是,如果我通过像 this 这样的 curl 进行测量,似乎不会发生延迟。和 this .我的两台服务器都有大约 4 毫秒的延迟。
    我注意到 Rocket 和 actix-web 不会在他们的响应中发送 Keep-Alive header 。如果我理解正确,这对于 HTTP 1.1 请求应该无关紧要。
    我正在使用安装了 Ubuntu 的 WSL 2。 Chrome 在主机 Windows 中运行。
    有人可以解释一下这里发生了什么吗?
    更新:忘了说我是使用 nightly 编译器来构建火箭服务器的(Rocket v0.4.6 似乎需要它)。直接从主分支更改为稳定和构建摆脱了延迟。尽管如此,actix-web 延迟仍然有点令人担忧,因为我使用了稳定的编译器。

    最佳答案

    全部从 Windows 运行,在 Node 中,响应时间约为 2-4 ms ,并在火箭 1-2 ms .您的环境中发生了一些奇怪的事情。
    还尝试从 WSL 提供服务,结果相同。
    即使在调试(rust)时它平均也需要 +1ms不仅仅是发布,这可能是一些奇怪的浏览器问题。

    关于node.js - "Hello world"从 Chrome 而非 curl 测量时,Rust 网络服务器比 Node 慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66036624/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com