Google已经在垃圾收集器的最后两个主要版本中取得了巨大进步。与之前相比,垃圾收集器运行的时间量几乎可以忽略不计。我想知道这些改进是否会牺牲其他任何东西。
在垃圾收集运行中,1.6仍然会像去1.4那样解除分配吗?
垃圾收集实际上是否会在运行时解除分配可能的所有内容,或者它是否会让步以加快速度?
答案 0 :(得分:2)
这取决于您的堆内存使用模式。主要目标是有效地使用内存,垃圾收集器(GC)具有更可预测和更短暂停的时间。为实现此目的,CPU使用量会有所增加,除非必要,否则可能会将一些垃圾收集推迟到GC的下一次运行。 GC将更频繁地运行并更好地利用可用内核。一般来说,人们会报告更短,更均匀的停顿。一般来说,这是一个巨大的胜利。 Go 1.6改进了Go 1.5,这是新GC的第一个版本。 Go 1.7会更好。
为减少不必要的GC使用量而进行的精心编程会对性能产生重大影响。