当前位置: 首页 > news >正文

云南做网站哪家便宜电商哪个平台好做

云南做网站哪家便宜,电商哪个平台好做,购物网站免费模板,asp做网站教程文章目录 问题怎么答举例 问题 知道golang的内存逃逸吗#xff1f;什么情况下会发生内存逃逸#xff1f; 怎么答 golang程序变量会携带有一组校验数据#xff0c;用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验#xff0c;它就可以在栈上分配。… 文章目录 问题怎么答举例 问题 知道golang的内存逃逸吗什么情况下会发生内存逃逸 怎么答 golang程序变量会携带有一组校验数据用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验它就可以在栈上分配。否则就说它 逃逸 了必须在堆上分配。 能引起变量逃逸到堆上的典型情况 在方法内把局部变量指针返回 局部变量原本应该在栈中分配在栈中回收。但是由于返回时被外部引用因此其生命周期大于栈则溢出。发送指针或带有指针的值到 channel 中。 在编译时是没有办法知道哪个 goroutine 会在 channel 上接收数据。所以编译器没法知道变量什么时候才会被释放。在一个切片上存储指针或带指针的值。 一个典型的例子就是 []*string 。这会导致切片的内容逃逸。尽管其后面的数组可能是在栈上分配的但其引用的值一定是在堆上。slice 的背后数组被重新分配了因为 append 时可能会超出其容量( cap )。 slice 初始化的地方在编译时是可以知道的它最开始会在栈上分配。如果切片背后的存储要基于运行时的数据进行扩充就会在堆上分配。在 interface 类型上调用方法。 在 interface 类型上调用方法都是动态调度的 —— 方法的真正实现只能在运行时知道。想像一个 io.Reader 类型的变量 r , 调用 r.Read(b) 会使得 r 的值和切片b 的背后存储都逃逸掉所以会在堆上分配。 举例 通过一个例子加深理解接下来尝试下怎么通过 go build -gcflags-m 查看逃逸的情况。 package main import fmt type A struct {s string } // 这是上面提到的 在方法内把局部变量指针返回 的情况 func foo(s string) *A {a : new(A) a.s sreturn a //返回局部变量a,在C语言中妥妥野指针但在go则ok但a会逃逸到堆 } func main() {a : foo(hello)b : a.s worldc : b !fmt.Println(c) }执行go build -gcflags-m main.go go build -gcflags-m main.go # command-line-arguments ./main.go:7:6: can inline foo ./main.go:13:10: inlining call to foo ./main.go:16:13: inlining call to fmt.Println /var/folders/45/qx9lfw2s2zzgvhzg3mtzkwzc0000gn/T/go-build409982591/b001/_gomod_.go:6:6: can inline init.0 ./main.go:7:10: leaking param: s ./main.go:8:10: new(A) escapes to heap ./main.go:16:13: io.Writer(os.Stdout) escapes to heap ./main.go:16:13: c escapes to heap ./main.go:15:9: b ! escapes to heap ./main.go:13:10: main new(A) does not escape ./main.go:14:11: main a.s world does not escape ./main.go:16:13: main []interface {} literal does not escape autogenerated:1: os.(*File).close .this does not escape./main.go:8:10: new(A) escapes to heap 说明 new(A) 逃逸了,符合上述提到的常见情况中的第一种。./main.go:14:11: main a.s world does not escape 说明 b 变量没有逃逸因为它只在方法内存在会在方法结束时被回收。/main.go:15:9: b “!” escapes to heap 说明 c 变量逃逸通过fmt.Println(a …interface{})打印的变量都会发生逃逸感兴趣的朋友可以去查查为什么。 以上操作其实就叫逃逸分析。
http://www.w-s-a.com/news/964638/

相关文章:

  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程
  • 服务器公司网站博客wordpress怎么编辑
  • 网站建设网络推广柯西乡塘网站建设
  • 企业做网站需要多少钱企业资质查询系统官网
  • 网站建设需要知识百度统计数据
  • 自已如何做网站建设通网站会员共享密码
  • 做网站学习什么wordpress 文件夹
  • 前端移动网站开发wordpress图文混排
  • 企业网站建站那种好商城类网站怎么优化
  • 手机微网站怎么制作的网上找设计师
  • 网站建设包括哪些方面学校网站 建设
  • 贵阳网站优化公司建筑设计师用什么软件
  • 网站建设的小说静态网页模板免费网站
  • 芜湖建设厅官方网站wordpress自动设置缩略图
  • 推荐网站网页湛江网站建设哪家优惠多
  • 传奇网站免费空间网店装修店面
  • 网站改版 重新收录湖南建筑信息一体化管理平台
  • 可以做直播卖产品的网站陕西省建设银行网站
  • 搭建网站的英语seo优化专员招聘
  • 做网站深紫色搭配什么颜色网站的在线支付怎么做
  • 中国最大网站建设公司长沙专业做网站公司哪家好
  • 金峰辉网站建设菏泽财富中心网站建设
  • 怎么做网站站长视频企业网站开发意义
  • 网站创建多少钱商标自助查询系统官网