为什么许多原本的 Java 项目都试图用 go 进行重写开源?

这样也由此说明go是一门优秀的语言,值得为之造轮子,完善其生态。面向对象,如果c++是1代,那么java就是2代,它解决了gc问题让程序员放飞自我,这项发明在上个世纪90年代简直就是上了天了,还能这么玩。

从技术层面分析,Go 实现的项目相比 Java 实现的更节省资源。组件用途决定了项目的实现形态,特别是对高并发的友好支持。从并发方面去看,Go 的并发实现方式优于 Java 的实现方式。

从性能上看,同样的 CPU 和内存大小,Go 新发现的组件能支持更高的 QPS;即,同等的业务需求,Go 的实现消耗更少的资源。从项目维护的角度去看,Go 开源项目有比较多的高水平研发人员参与进来。

docker作为一个运行时环境,其本身的开发语言是次要的,用什么语言都ok,但docker托管的app尽量用go开发,alpine镜像打包的go程序真的很小,小服务体积只有5M,java项目要200M。这样等后面k8s出现后,这种差距就越来越显得离谱。但凡是脑袋正常的老板都喜欢那个5M。自己的服务以及各种中间件无障碍大规模部署,拉低了互联网的逼格,或许这是go火的原因吧。

性能我觉得是次要的,尤其是基于db的无状态web后端应用,被调是一次rpc,调db又是一次rpc,两次rpc四次正反序列化这种计算不需要考虑性能,别比db慢就好。有状态的应用,比如游戏,比如角色装备变更,buff变更,天赋变更导致的重新计算,比如5000行代码的计算量,这种计算也比较少,够不成考虑性能的理由。

特殊场景对性能有要求的,比如导弹的控制系统,目标北美,1

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值