Skip to content

Latest commit

 

History

History
executable file
·
23 lines (13 loc) · 1.55 KB

File metadata and controls

executable file
·
23 lines (13 loc) · 1.55 KB

基础知识

本部分内容会囊括原书的 前言、Go 语言的起源发展和普及、安装与运行环境、编辑器、集成开发与其它工具 等内容,且会省略很多介绍性的内容。

Go Runtime

Go 编译器直接产生本地可执行的代码,但这些代码仍运行在 Go 的 runtime 当中。这个 runtime 类似于 JAVA 中用到的 JVM,负责管理包括内存分配、垃圾回收、栈处理、goroutine、channel、切片等。

类似的,Go 拥有类似与 JAVA 的垃圾回收机制(标记-清除回收器)用于自动的垃圾回收操作。但同样的,自动的垃圾回收机制并不能规避所有因为内存带来的问题,分配和回收内容都是消耗 CPU 资源的行为。

Go 的可执行文件大小要比对应的源码文件要大很多,说明 Go 的 runtime 嵌入到了每一个可执行文件中,相对于较大的文件大小,Go 编译出来的程序的部署要更加的方便,因为它只需要一个静态文件即可,而避免了像 Python 那样需要为不同版本的依赖甚至是软件额外处理的麻烦。

调试器

fmt.Printf() 中的占位符说明

%+v 打印包括字段在内的实例完整信息
%#v 打印包括字段和限定类型名称在内的实例的完整信息
%T  打印某个类型的完整说明

Go 的性能说明

时下流行的编程语言一般都是运行在虚拟机上,如:Java 和 Scala 的 JVM,C#和 .NET 使用的 .NET CLR,但是任何使用 JIT 的语言(如 Python、Ruby 等)在性能上远远不及 C 和C++。