我对Go编程语言不是很了解,但我看到一些说法称Go具有无延迟垃圾回收功能,且比其他垃圾回收器(如JVM垃圾回收器)更好。我已经为JVM开发应用程序,并知道JVM垃圾回收器不是无延迟的(特别是在大内存使用情况下)。
我想知道,在Go中的垃圾回收方法与其他方法之间的区别是什么,这使其无延迟?
谢谢。
我对Go编程语言不是很了解,但我看到一些说法称Go具有无延迟垃圾回收功能,且比其他垃圾回收器(如JVM垃圾回收器)更好。我已经为JVM开发应用程序,并知道JVM垃圾回收器不是无延迟的(特别是在大内存使用情况下)。
我想知道,在Go中的垃圾回收方法与其他方法之间的区别是什么,这使其无延迟?
谢谢。
Go语言没有完全消除延迟的垃圾回收。如果您能指出这些声明的位置,我会尝试进行更正。
我们认为Go相比Java有一个优势,那就是它可以让您更好地控制内存布局。例如,一个简单的2D图形包可能会定义:
type Rect struct {
Min Point
Max Point
}
type Point struct {
X int
Y int
}
在Go语言中,一个Rect只是内存中连续的四个整数。即使你将&r.Max传递给期望*Point的函数,那也只是指针进入了Rect变量r的中间部分。