node.js和Tornado之间的差异是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (171)

除了node.js是用Python和Tornado编写的,这两者之间有什么区别呢?他们都是非阻塞异步Web服务器,对吧?为什么选择除了语言之外的其他语言?

提问于
用户回答回答于

node.js的主要优点是它的所有库都是异步的,所以你不必担心阻塞问题。有用于mysql,postgres,redis等的异步库。默认情况下,所有这些都是异步的。

Python有一个适用于任何内容的库 - 但是这些库中的大多数不是异步的。为了利用龙卷风(而不是阻止进程),需要特殊的库,例如,目前没有可用的异步mysqltornado驱动程序(或者至少我不知道它)。

根据我的经验,使用node.js编写应用比使用tornado更容易。我个人从node.js切换到tornado,因为它更适合我python项目的现有基础设施(django站点提供html页面和提供实时特性的龙卷风服务器之间的集成非常轻松)。

用户回答回答于

正如Rich Bradshaw所指出的,Node.js是用JS编写的,这意味着可以保持前端和后端使用相同的语言,并可能共享一些代码库。对我来说这是Node.js的巨大潜在收益。看起来节点还附带有更多异步库。

V8应该比Python更快,至少这是基准测试的结果,但它可能并不重要,因为Node.jsTornado(以及大多数其他Web框架)都使用本地库的包装器。很多Python标准库都是用C语言编写的,或者可以用更快的替代方法替代,这样可以更加缓解潜在的差异。

Web服务通常是I / O绑定的,这意味着我们花时间等待数据存储而不处理数据。这使得JS和Python之间的合成速度差异在许多应用程序中无关紧要。

扫码关注云+社区

领取腾讯云代金券