初级会员
  • 第 53495 位会员
  • ypengju
  • 2020-06-01 12:07:19
  • Offline
  • 20 3

最近发布的主题

最近发布的文章

    暂无

最近分享的资源

    暂无

最近发布的项目

    暂无

最近的评论

  • 说的挺好 手动点赞
  • linux下,底层用的就是epoll,只是golang帮你封装了。
  • https://pkg.go.dev/
  • 评论了主题 go内存的一些问题
    ##### 问题1 - sizeclass 代表对象大小的级别,每个级别对象的大小是固定的,共67个级别 0是给大对象用的,其他给小对象用。 - spanclass 对象分为包含指针和不包含指针的,所以spanclass共134个级别。是sizeclass的两倍。一个spanclass中包含了sizeclass和nosan(是否包含指针) - 不同的span,根据其spanclass,来计算该span需要的page数量,然后按page的数量向页分配器申请指定数量的连续的页,来组成一个span。span会根据其对应spanclass的sizeclass,将span分成一个个对象。同一个span中对象的大小都一样的。 ``` npages := uintptr(class_to_allocnpages[c.spanclass.sizeclass()]) // span需要的page数量 size := uintptr(class_to_size[c.spanclass.sizeclass()]) // span中每个对象的大小 ``` ##### 问题2 - 楼上说的对