Deno 和 Rust 一样快吗?

Alo*_*mon 0 node.js rust deno

我听说 Deno 是建立在 Rust 之上的。Deno 和 Rust 一样快,还是 Rust 更快?我找不到 Deno 与 Rust 甚至 Deno 与 Golang 之间的性能比较。

Mar*_*nde 13

Deno 比 Rust 慢。主要是因为 Rust 比 JavaScript 更快。除此之外,您所有的 JavaScript 代码都由 v8 而非 Rust 运行。

HTTP 请求、文件系统操作等运行时方法是用 Rust 编写的,但这些调用具有从 JavaScript 到 Rust 再返回到 JavaScript 的开销。

在任何情况下,您都应该将其与 Node.js 进行比较,而这是等效的比较。由于 Deno 是一种运行时和 Rust 一种编程语言。

  • @AlongkornChetasumon - 仅供参考,node.js 和 V8 之间的纯 Javascript 性能应该相同或几乎相同,因为它们使用相同的 V8 Javascript 引擎。差异在于库支持,因为库是用不同语言编写的完全不同的实现。Deno 是全新的、简洁的设计,但 Node.js 很成熟,并且有一些向后兼容性包袱需要处理。在解决现实世界问题时,更大的区别是 Node.js 有数以万计的可用 NPM 模块,而 Deno 则不存在这些模块。 (2认同)

snn*_*snn 6

Deno 只是一个类似 node js 的运行时。比较没有意义,因为一个是语言,另一个是应用程序。

但是如果你问在 Deno 上运行的服务器是否可以比直接用 Rust 编写的服务器更快,那取决于实现。然而,由于它是另一层抽象,不同的工作委托给不同的技术,比如 JavaScript 引擎到 V8(用 C++ 编写),事件循环到 tokio(用 Rust 编写),它不太可能。您可以优化用 Rust 编写的服务器,以便为您的用例挤出最后一滴性能,但 Deno 则不能。

这里需要注意的一件事是,您为这项工作选择了正确的工具。Deno 可能无法提供 Rust 提供的速度水平,但它可能非常适合用于原型设计或编写工具。


Eva*_*tti 5

查看架构将帮助您理解为什么从技术角度来看这个问题不合适。

Deno 和 Rust 不是等价的,它们是不同种类的技术。

如前所述,Deno是一个运行时(对于这个上下文:就像一个应用程序服务器),它是用不同语言编写的多个组件构建的。Rust 是一种语言,而不是应用服务器。

Deno 的大部分核心内部组件都使用了 Rust。

假设,如果您直接运行 Rust 代码,那么它将执行“更好”,因为它不必经过平台生命周期步骤,但这不是重点。

不仅性能上的差异与 99% 的应用程序无关,而且您将没有一个平台可以在其中使用库和集成来开发重要的应用程序代码,这恰好是 JavaScript 或 TypeScript。

在此处输入图片说明