笔者最近因为有个需求,二次开发了微信三方管理平台的go项目,也是借此机会聊一下使用go后的一些感受

性能对比

Java

Go

优势

最低运行内存

70M

20M

Java面向对象语言就注定一个实例的内存成本大于GO

打包大小

70M

28M

流水线持续部署时省下的存储非常可观

接口性能

100%

110%

Gin属于轻量级框架,必然是快于Spring

开发效率

从根本来说,二者开发效率没有什么区别,但在考虑到java的隐性要求,如大家都默认MVC
模式架构开发以及面向对象语言的编程想法,想以最快时间完成接口开发是慢于go语言的

企业开发

得益于Spring框架,Java的企业应用开发是毋庸置疑强于GO的,动态字节码、反射、Agent等等。使得JAVA在架构设计、解耦、代码入侵持续集成上都是毋庸置疑的优秀

社区

在Java服务端开发时,因为拥有杀手级框架Spring,几乎所有用到的中间件或关键组件都拥有Spring-Starter版本,且社区维护上十分活跃。而GO还为在服务端开发上虽然性能极高但终究还是没有杀手级的Web框架,后续的集成几乎全靠自己装配。且已有很多Java开发的中间,这无疑使Java在技术栈选择上更加有优势。

结论

Go更适合中间件开发 , Java更适合Web开发

引路PinPoint

GO入侵式的引入

go和java 高并发效率 go和java开发效率_Java

Java使用Agent,只需要在启动命令上引入

go和java 高并发效率 go和java开发效率_开发语言_02