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

office365做企业网站昆山网站建设推广

office365做企业网站,昆山网站建设推广,seo外包 靠谱,石狮网站建设报价💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

   💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。



非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨
 

前言

小郑最近在准备Go语言的面试题,通过github和b站等各种学习网站上学习go语言的八股文,并且整理出自己觉得面试可能会问到的知识点,希望通过做笔记的方式来巩固自己的知识点,并且也希望可以帮助到大家在面试的时候更加得心应手一些,那么从现在开始,和我一起加入八股学习之旅吧!

回答重点

逃逸分析是编译器优化的一部分,用来决定对象应该分配在栈上还是堆上。

在 Go 语言中,编译器会在编译期间进行逃逸分析,通过分析代码中的变量确定它们是否会“逃逸”出当前的作用域。

如果一个变量在函数或方法内被创建,但在函数外部仍然被引用,那么它将被称为“逃逸”,需要分配到堆上;否则,它将被分配在栈上。

栈分配和堆分配的区别:

栈分配的好处是分配和释放内存的开销非常小,速度快。

堆分配需要依赖垃圾回收器(GC)来管理内存,因此开销相对较大。

逃逸分析的过程

逃逸分析由编译器在编译期间进行,它检查每一个变量的使用情况。编译器根据变量的作用范围、生命周期、以及变量是否被传递给其他协程或返回到外部等来确定其是否逃逸。

主要的原则包括:

  • 若变量的生命周期超出当前函数,则视为逃逸。
  • 若变量被引用并存储到堆上,则视为逃逸。

变量本来应该存在栈上(即是局部的,生命周期只在当前函数内),但是它被引用到堆上,意味着它的生命周期会超出当前函数的作用域,可能会继续存在下去。这就发生了“逃逸”。

  • 若变量被传递给外部函数、方法或 goroutine,且存活时间可能超过当前函数,则视为逃逸。

package mainimport "fmt"func escapeExample() *int {x := 42       // 局部变量 xreturn &x     // 返回 x 的地址,x 发生逃逸,分配到堆上
}func stackExample() int {x := 42       // 局部变量 xreturn x      // x 没有逃逸,分配在栈上
}

由于 Go 语言的内存模型,如果你将一个局部变量的地址返回,这个变量的生命周期就会被延长。

Go 编译器会认为 x 的生命周期不能仅限于函数 escapeExample 的作用域,因为返回的地址可能会在函数外部被引用。因此,Go 会把 x 从栈上移动到堆上,并确保它的生命周期持续足够长。

return x 返回了 x 的值,而不是返回 x 的地址。 在这种情况下,x 的值被复制到了调用者的栈上,这意味着 x 并没有逃逸到堆上。它依然只在函数内部有效,并且在函数调用结束后会被销毁。

逃逸分析的优化技巧

返回指针,闭包捕获,接口赋值,动态类型转换等会导致变量逃逸。

1,避免不必要的指针返回:如果可能,返回值而不是返回指针。

2,减少闭包对变量的引用:避免在闭包中使用外部变量,尽量将变量传递给闭包。

3,游免接口赋值:使用具体类型代营接口,减少逃逸到堆的可能性。

❤️❤️❤️小郑是普通学生水平,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

http://www.dtcms.com/wzjs/437889.html

相关文章:

  • 麻涌镇做网站广东今天新闻最新消息
  • 深圳网站建设服务比较便宜百度广告竞价排名
  • 代做备案网站seo常用工具有哪些
  • 酷站百分百东莞seo项目优化方法
  • 快站wordpress百度seo排名优化公司哪家强
  • 油气集输毕业设计代做网站网络服务提供者不履行法律行政法规规定
  • 新郑市网站建设张雷明履新河南省委常委
  • 一个网站域名一年要多少钱为什么不能去外包公司
  • 推广公司服务内容宁波seo推广优化公司
  • 盱眙网站建设公司google首页
  • 套模版做网站磐石网站seo
  • 网页设计公司名称百度seo关键词优化电话
  • 北京做网站的公司哪家好seo网上培训多少钱
  • 具有品牌的广州做网站四川seo
  • 做网站分类链接网站页面的优化
  • 传统门户网站有哪些广州优化防控措施
  • 炫酷的个人网站百家号关键词seo优化
  • 葡萄城网站建设网站快速优化排名软件
  • 怎么用iapp做网站软件沈阳网站关键词优化公司
  • 广州网站设计公司招聘泉州百度竞价公司
  • 宁波网站开发制作网站seo外包靠谱吗
  • 网站联盟广告名词解释网站链接推广工具
  • 网站后台密码文件厦门seo培训学校
  • 制作网站公司首 荐乐云seo专家有哪些免费推广网站
  • 加急网站备案万网域名注册教程
  • 企业品牌推广网站国外十大免费服务器和域名
  • 重新建设网站的申请报告网络营销策划书
  • WordPress360收录网站关键词优化排名外包
  • 网站建设和网站优化哪个更重要宝鸡百度seo
  • 滕州建网站哪家好二次感染即将大爆发