究竟是用 Go 还是 Node.js 去做中间件?
2017-05-19 22:54
531 查看
后端的技术选型还是得看具体应用背景。注意:技术选型不是选语言框架,而是设计处理模型。
处理模型有几个基本的纬度:接受请求阶段,执行请求阶段。事件驱动,线程池。代码风格:同步还是异步。内存垃圾回收等策略。profile工具是否完备等等等。
如果你说IO密集型,那等于没啥cpu压力。node可以入围。如果是cpu密集,那就乖乖用线程池模型。
采用node方案,主要问题是是否彻底掌握内存回收的细节,js的抽象建模的套路,还有各种配套工具,以及团队的熟悉程度。如果对js印象还停留在10年前,或者觉得js简单才用node,后面肯定被坑了。
实际上,node的v8,跟java的hotspot是同根同源,甚至都是同一个人主导。v8性能在非本地编译语言里,也是仅此于java这类中间语言。至于IO密集型,大家都一样,只是怎么跟操作系统bind。
golang也太了解了。node肯定可以做,但内存问题要小心。
作者:陈连杰
链接:https://www.zhihu.com/question/29808896/answer/148593997
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
处理模型有几个基本的纬度:接受请求阶段,执行请求阶段。事件驱动,线程池。代码风格:同步还是异步。内存垃圾回收等策略。profile工具是否完备等等等。
如果你说IO密集型,那等于没啥cpu压力。node可以入围。如果是cpu密集,那就乖乖用线程池模型。
采用node方案,主要问题是是否彻底掌握内存回收的细节,js的抽象建模的套路,还有各种配套工具,以及团队的熟悉程度。如果对js印象还停留在10年前,或者觉得js简单才用node,后面肯定被坑了。
实际上,node的v8,跟java的hotspot是同根同源,甚至都是同一个人主导。v8性能在非本地编译语言里,也是仅此于java这类中间语言。至于IO密集型,大家都一样,只是怎么跟操作系统bind。
golang也太了解了。node肯定可以做,但内存问题要小心。
作者:陈连杰
链接:https://www.zhihu.com/question/29808896/answer/148593997
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- Node.js 究竟是什么--Node 是一个服务器程序
- Node.js 究竟是什么?
- 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件
- 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件
- Node.js 究竟是什么?
- Node.js 究竟是什么?
- 好文章——Node.js 究竟是什么?
- golang与node.js的http模块性能对比测试(go1)
- golang与node.js的http模块性能对比测试(go1)
- Node.js 究竟是什么?
- 【转】Node.js 究竟是什么?
- Node.js 究竟是什么?
- Node.js 究竟是什么?
- Node.js 究竟是什么?
- Node.js 究竟是什么?
- Node.js 究竟是什么?
- Node.js究竟是什么?
- Node.js 究竟是什么?
- Node.js 究竟是什么?
- 深入浅出Node.js(八):Connect模块解析(之二)静态文件中间件