Nodejs差不多也到顶峰了吧?

Javascript现在应该是很火的语言了,特别是受到了Node.js的照顾后,已经是前后端通吃的地步了,甚至连嵌入式领域也开始涉足。但是慢慢随之而来的弊端也开始出现了,本文不打算说Node.js的优点,因为几乎网上都是优点,而只是来说说Node.js的缺点。

缺点1 庞大的NPM包

NPM是随着Node.js一同出来的库管理软件,这种一键式下载第三方库的出现,立即将Node.js带入了快车道,目前NPM上面的第三方库应该是所有语言里面最多的了,至少有30万的库在那里,而且每天都在不断的增加当中。

但是这么方便的工具却也带来了不少麻烦,第一就是庞大的体积,由于NPM没有对包依赖做扁平化处理,因此同一个包会被反复安装,比如说module A需要module C,而module B也需要module C,这时候其他语言应该是只下载一个module C,但是NPM会分别给module Amodule B都下载一遍,这样我们的软件体积就会重复的增加,还好NPM后来加入了扁平化手段,但麻烦的是,你需要手动执行操作,而不会自动去执行。

其次NPM的第三方包的体积也越来越大,常用的lodash或者是ramda这样的包一旦加载就要吃到10MB的内存,而我们有可能仅仅使用了它百分之一的功能而已,随着一些包的版本升级,体积是越来越大,内存也是越吃越多,而开发者更无奈的是我们居然没有选择权了!

最后NPM的一个缺点就是,包实在是太多太多了,究竟那些是优质包,那些是滥竽充数的不试试根本不知道,而且有些库已经几年没有维护了。

缺点2 Node.js吃内存

Node.js很好的继承了Google的优良传统,吃内存!有没有注意到,Node.js根本没有动态库,全部的程序只有一个node.js?,知道这意味着什么吗?那就是你每启动一个Node.js进程,你就要全部加载一遍,现在node.js大小有10MB,也就是说你的程序什么都不干已经10MB的内存没有了,如果你开个10个,20个,50个进程,内存将会迅速消耗殆尽,而其他语言会使用动态库来解决这种问题,第一个进程内存可能占用的多,但是后面的进程会共享同一个动态库,从而减少了内存的消耗。不知道Node.js为什么要这样设计,难道是为了更好的内存隔离吗?可是动态库的技术已经很成熟了,也没有出现什么问题过,感觉在这一点上Node.js是落后于时代的。

我能想到最糟糕的缺点有这两点,不知道大家还有没有添加的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值