go基础了解|青训营笔记

111 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记 今天我要带给大家的干货是go基础了解

什么是go

go语言支持高性能,高并发,标准库多,工具链完善,垃圾回收的语言.

高性能是与其他语言对比得来的

以C语言为例,C语言可以说是运行的很快了,当我们用去发送10000000条UDP数据时,C语言和go语言,在linux系统中,成功发送完毕时间相差不大,大概4s左右,在mac系统中,go比C语言更快,详见李超大佬的知乎,这篇文章有测试代码核心实现,大家可以手动实现一下代码。

高并发

做过web系统的人,应该对并发量(每秒访问量)有所体会,尤其是在项目压力测试的时候,并发量越大,系统越能正常运行,说明系统的性能特别强,而go正是因为它能实现高并发,吸引了一大批程序猿,字节跳动就是以go为主。

标准库多

可以看go语言中文网,从数据库,并发编程,到网络编程...可以说,正是由于之前业界各种语言(Java,python)的积累以及优秀程序员的代码提供,使go一出生就站在了巨人的肩膀上,标准库因此而开发出了很多。

工具链完善

工具链就如同Java的javac,java等命令,go也有工具链,如golint,go test等,简化了开发的难度,可以看看Binb大佬的这篇博客记载了常用的工具链

垃圾回收

有过c++开发经验的朋友,应该对内存占用这个词比较敏感,常常出现,我“死去”的对象突然醒了,拖垮了“我”的情况,经常要去进行手动内存释放,而go开发就不需要担心这个事情了,它会自动进行垃圾回收,与Java,python一样,都可以自动回收,由守护线程处理掉“死去”的对象,简化了开发难度,懒人福音。