几个月前我被介绍给 NodeJS。我想学习足够的知识来编写一个可以处理中等负载的有用应用程序。我正在花时间学习电子书、网站和代码。我的背景是各种语言的休闲编程,包括 PHP。我一直在查看各种可用 Node 包的源代码,只是为了学习和查看最佳实践。特别是一些可用的各种 websocket 包。我注意到 NodeJS 作者倾向于使用面向对象的方法来构建他们的代码,以便动态实例化对象,例如:
var wsRequest = new WebSocketRequest(someParams);
var wsConnection = new WebSocketConnection(someParams);
var wsFrame = new WebSocketFrame(someParams);
请求产生连接,连接产生帧。
作为 OOP 的优势,这对我来说是合乎逻辑的。但是在过去,我用其他语言编写的此类程序的类实例创建速度很慢。一次,或者按照用户输入的速度。不过,在这里,复杂对象的创建速度要快得多,根据网站的负载,可能每秒数百甚至更多。此外,我认为垃圾收集器必须努力工作以清理垃圾。我的问题是,编写 Node 应用程序的程序方法是否会比在服务器回调中自由使用“new”、动态创建复杂对象更高效?或者与 OOP 的优势相比,任何优势都是微不足道的。