之前在一直在用JAVA开发,从JAVA的 EJB 到流行的 Spring,总体感受开发速度尚可,不用重复造轮子,启动慢,内存占用高,单机并发量低。某次需要开发一个功能简单的服务,开发过程很顺利,上线部署发现,需要先装 jre 才能运行,程序本身不大,但是所需要的运行环境太大了,不适合快速部署。2018年的某一天,偶然间看到了go语言,尝试一下,把JAVA程序,用GO实现一遍,结果是程序体积小,可以直接运行,占用内存特别低(不到JAVA的十分之一),并发量高(据说相当与nginx),编译运行速度快(开发效率高,JAVA一个项目编译运行,没个3-5分钟都启动不来,影响开发效率),相对而言,目前go的各种库相对JAVA要少,但也有很多可以直接用的库,比如我常用的Goframe 几乎包含各种需要的功能(webserver,orm,config,cache)
我说的是JAVA程序代码在编译打包成 war包或者jar包时,比 go 编译成可执行程序要慢。
启动Java的速度要比 go慢,比如springboot程序还没启动完毕,go的代码已经可以收到客户端的请求了。
而不是比较两者的执行效率,目前执行效率上的快慢没有意义。目前最耗时的是网络。
#7