This commit is contained in:
Unknown
2013-04-15 00:00:09 -04:00
parent d66d26e876
commit deec5b51e4
5 changed files with 31 additions and 16 deletions

View File

@@ -1,18 +1,11 @@
##啊哦,亲,你看得也太快了。。。还没翻译完呢 0 0
要不等到 ***2013 年 4 月 14 日*** 再来看看吧~~
这里还有一些其它的学习资源噢~
- [《Go编程基础》](https://github.com/Unknwon/go-fundamental-programming):已更新至 [第六课](https://github.com/Unknwon/go-fundamental-programming/blob/master/lecture6/lecture6.md)
- [《Go Web编程》](https://github.com/astaxie/build-web-application-with-golang)
神马?你说你不想学习?那好吧,去逛逛论坛看看行情也行~
- [Golang中文社区](http://bbs.mygolang.com/forum.php)
- [Go语言学习园地](http://studygolang.com/)
- [Golang中国](http://golang.tc)
#2.7 Go 类虚拟机runtime
尽管 Go 编译器产生的是本地可执行代码,这些代码仍旧运行在 Go 的 runtime这部分的代码可以在 runtime 包中找到)当中。这个 runtime 类似 Java 和 .NET 语言所用到的虚拟机它负责管理包括内存分配、垃圾回收第10.8节、栈处理、goroutine、channel、切片slice、map 和反射reflection等等。
runtime 主要由 C 语言编写,并且是每个 Go 包的最顶级包。你可以在目录 `$GOROOT/src/pkg/runtime/` 中找到相关内容(主要看 mgc0.c 和其它以 m 开头的文件)。
**垃圾回收器** Go 拥有简单却高效的标记-清除回收器。它的主要思想来源于 IBM 的可复用垃圾回收器,旨在打造一个高效、低延迟的并发回收器。目前 gccgo 还没有回收器,同时适用 gc 和 gccgo 的新回收器正在研发中。使用一门具有垃圾回收功能的编程语言不代表你可以避免内存分配所带来的问题,分配和回收内容都是消耗 CPU 资源的一种行为。
Go 的可执行文件都比相对应的源代码文件要大很多,这恰恰说明了 Go 的 runtime 嵌入到了每一个可执行文件当中。当然在部署到数量巨大的集群时较大的文件体积也是比较头疼的问题。但总得来说Go 的部署工作还是要比 Java 和 Python 轻松得多。因为 Go 不需要依赖任何其它文件,它只需要一个单独的静态文件,这样你也不会像使用其它语言一样在各种不同版本的依赖文件之间混淆。
##链接
- [目录](directory.md)