美文网首页我爱编程
Nodejs与Java 在C层方面的对比

Nodejs与Java 在C层方面的对比

作者: 萨默塞特酱 | 来源:发表于2018-03-22 23:32 被阅读0次

    Nodejs与Java 在C层方面的对比

    架构

    • Nodejs已经有很多生产环境可用的开发框架,如eggjs,thinkjs。相关的进程管理,部署,安全,日志系统,定时任务,应用性能监控、orm已有成熟的解决方案。
    • 使用typescript+lint工具,提供类型检查、代码规范,使用jest等工具实现自动化测试,保证应用的开发效率、稳定性、可维护性。
    • Nodejs天生实现了跨平台,开发应用不需要考虑系统兼容。Java的跨平台依赖于JVM。
    • Nodejs的部署相当方便,多进程模型和进程通信设计也非常友好,异常处理和异步语法几乎可以做到无痛开发,心智负担较低。国际化方面也很好实现。Java开发需要考虑的更多,线程切换消耗资源,也给开发者带来更多的负担。
    • Nodejs可以使用面向对象的方式实现灵活的代码复用,也支持函数式编程。使用typescript也可以类似类型注解、重载、泛型、接口、命名空间、装饰器等特性,为开发提供丰富的语法支持。Java则是完全的面向对象,对开发者有一些限制。

    易用性

    • Nodejs和前端同样使用JavaScript,使用同样的包,代码上可以有一定的复用,比如网络层:axios,用typescript定义同样的接口...同样受益于丰富的npm生态,代码规范,测试框架都可以复用。 Java的C层无法与前端做任何复用。
    • Nodejs没有类型系统的约束,开发效率很高,可以快速响应异变的前端需求。需要使用类型系统时也可以使用typescript约束,保证服务的稳定性。Java相比下做C层的开发效率相对较低,限制也比较多。
    • Koa/express/eggjs的中间件机制可以对请求和响应各个环节做更改,可以非常容易的实现数据校验、权限检查、统一报错等功能

    性能

    • 性能上nodejs采用谷歌的V8引擎,使用C++编写部分底层库,天生的异步IO,可以实现高性能的应用。使用cluster可以部署多个进程,充分利用CPU资源
    • 天生异步IO可以保证整个线程大部分时候不阻塞,非常容易实现高并发,适合IO密集型的应用开发。一般调用odl接口只有网络层几十ms的消耗。


      性能对比

      5000个并发连接下的情况下,Node的响应数与Java差不多。

    生态

    • Nodejs使用npm进行第三方包的管理,npm上关于nodejs的包已有上百万个,可以为我们的开发提供丰富的生态支持。
    • Nodejs在阿里、腾讯、paypal已经有大规模的实践,也为社区提供了很多成熟的解决方案。

    相关文章

      网友评论

        本文标题:Nodejs与Java 在C层方面的对比

        本文链接:https://www.haomeiwen.com/subject/bnzzqftx.html