• tjudream
    2019-04-04
    老师能否讲解一些Go语言的内存模型,以及Go语言的垃圾回收机制。
    Go语言和也向Java一样分为堆内存、栈内存和永久区吗?
    Go语言是使用协程去做垃圾回收的吗?是否和Java一样存在Stop The World的情况?
    Go语言没有像Java一样的JVM虚拟机,那它是编译的时候把垃圾回收、协程管理等相关的代码都编译进去了吗?每个Go的二进制包中都存在这些指令吗?
    
     5
  • manatee
    2019-04-03
    请教一下老师在初始化sync.pool中那个New:func() 是什么写法呢,之前好像没遇到过

    作者回复: 这个就是在函数课程中提到,方法在Go中方法是第一公民,所以New是结构体中一个变量,而这个变量的值是个方法。这里你把自定义的方法作为变量值付给了New

    
     2
  • thomas
    2019-11-20
    为什么加上runtime.GC()这句后,依然还是会读取缓存?

    func main() {
        pool := &sync.Pool{
            New: func() interface{}{
                fmt.Println("create a new object")
                return 100
            },
        }

        v,ok := pool.Get().(int)
        fmt.Println(v,ok)
        pool.Put(3)    
        runtime.GC()
        v,ok = pool.Get().(int)
        fmt.Println(v,ok)
    }

    运行结果:
    create a new object
    100 true
    3 true
    展开

    作者回复: 你使用的是那个版本呢?
    官方Go runtime 1.13将对sync.Pool中的对象回收时机策略做出调整。在1.12版本及以前的版本中,在每轮垃圾回收过程中,每个sync.Pool实例中的所有缓存对象都将被无条件回收掉。从1.13版本开始,如果一个sync.Pool实例在上一轮垃圾回收过程结束之后仍然被使用过,则其中的缓存对象将不会被回收掉。此举对于使用sync.Pool来提升效率的程序来说,将大大减少周期性的因为缓存被清除而造成的瞬时效率下降。

     2
     1
  • 忽然之间
    2019-04-19
    视频内容点到为止,每次听了还要去搜索各种资源来加深理解,希望老师给提供一些更恰当的、提供思考方向、更具实战的例子。
    
     1
  • 李坤(Terry)
    2019-09-05
    新发布的go1.13版本中,pool支持跨GC了。
    原文是:Pool no longer needs to be completely repopulated after every GC. It now retains some objects across GCs, as opposed to releasing all objects, reducing load spikes for heavy users of Pool.
    
    
  • 虢國技醬
    2019-08-18
    老师所说的每个processor的私有对象和共享池应该就是pool源码的这两个字段定义

    // Local per-P Pool appendix.
    type poolLocalInternal struct {
        private interface{} // Can be used only by the respective P.
        shared poolChain // Local P can pushHead/popHead; any P can popTail.
    }
    展开
    
    
  • 阿恺
    2019-08-08
    在go doc中这样描述:A Pool is safe for use by multiple goroutines simultaneously. 并没有提及共享池的协程不安全。请问老师,如何理解pool是否协程安全?

    作者回复: 其实在我的总结里提到了,sync.Pool是可以在多协程的情况下使用的,但是在访问共享池时,会有锁的开销。

    -协程安全,会有锁的开销

    
    
我们在线,来聊聊吧