HD Superman
Across the Great Wall, we can reach every corner in the world.
Joined 4 years ago
github.com/hdsuperman是的,脚本语言的问题,逻辑一样的前提下 go/java 能比 nodejs 好 2-4 倍,但是大部分应用实际体验差别不明显。
比如 spring boot,为了各种功能支持,逻辑抽象很多层,相比 nodejs 的面条代码执行逻辑更多,所以差别不明显,延迟主要在 db 和网络上,其次 typescript 的 ORM 相比 go/java 更容易写出类型安全且定制的 SQL,之前重构的部份 API 减少了 join 和 n+1 问题,延迟小了。
其次,一些 CPU 计算密集的场景,如图片处理,nodejs 用的是 sharp 之类的库,背后是 libvips 由 C 写的,性能没有问题。或者如 crypto 加密计算,native 调用下也是 c/c++ 写的逻辑,仅提供接口给 js 调用,这种都是 OK 的。像 photoshop 的网页版本,典型大量 CPU 密集型计算,他们用别的语言写逻辑再编译为 WASM 给网页端的 js 调用。
Python 也是一样的道理,numpy 之类的库都不是 py 写的。如果做 benchmark 语言性能差别很大,但是实际体验差别可以忽略(99% 的应用都没有高并发问题)。