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

网站平台设计费用做网站是属火的职业吗

网站平台设计费用,做网站是属火的职业吗,宜昌网站seo,手机大全及价格go-基于逃逸分析来提升性能程序 为什么要学习逃逸分析: 为了提高程序的性能,通过逃逸分析我们能知道指标是分配到堆上还是栈上,如何是 分配到栈上,内存的分配和释放都是由编译器进行管理的,分配和释放的速度都非常的…

go-基于逃逸分析来提升性能程序

为什么要学习逃逸分析:

为了提高程序的性能,通过逃逸分析我们能知道指标是分配到堆上还是栈上,如何是 分配到栈上,内存的分配和释放都是由编译器进行管理的,分配和释放的速度都非常的快;如果分配到堆上,堆不像栈那样可以自动清理,它会引起崩溃进而进行垃圾回收,而垃圾回收又会占用比较大的系统开销。

什么是逃逸分析

逃逸分析简单来说就是分析在程序的哪些位置可以访问到该指针

简单的来说,它是在对变量放在堆上或者栈上进行分析,该分析在编译阶段完成。如果一个变量超过了函数调用的生命周期,那么这个变量就在函数外部存在引用了,编译器会把这个变量分配到堆上,接下来我们就说这个变量发生逃逸了。

如何确定是否逃逸

go run -gcflags '-m' main.go

可能出现逃逸的场景

pakcage main type Student struct {Name interface{}}func main() {stu := new(Student)stu.Name = "tom"}
  • 函数main可以被内联(can inline main)。
  • 在第45行,new(Student)函数调用没有逃逸到堆上分配(does not escape)。
  • 在第46行,字符串"tom"逃逸到了堆上分配(escapes to heap)。

interface赋值会发生逃逸,优化方案只需要将类型设置为固定类型,例如:string

02

package main type Student struct {Name string
}func GetStudent() *Student {stu := new(Student)stu.Name = "tom"return stu
}func main() {GetStudent()
}
  • 函数GetStudent可以被内联(can inline GetStudent)。
  • 函数main可以被内联(can inline main)。
  • 在第55行,new(Student)函数调用逃逸到堆上分配(escapes to heap)。
  • 在第61行,new(Student)函数调用没有逃逸到堆上分配(does not escape)。
  • 在第61行,调用GetStudent函数被内联(inlining call to GetStudent)。

返回指针类型,会发生逃逸

函数传递指针和传值,传递指针可以减少底层值的拷贝,可以提高效率,但是如果拷贝的数据量小,由于指针传递会产生逃逸,可能会使用堆,也可能会增加GC的负担,所以交付负载不一定是高效的。

不要盲目使用指针作为参数,虽然减少了复制,但指针逃逸的头部可能更大

package mainfunc main() {nums := make([]int, 10000, 10000)for i := range nums {nums[i] = i}
}
  • 函数main可以被内联(can inline main)。
  • 在第66行,使用make函数创建的切片逃逸到了堆上分配(escapes to heap)

栈空间不足,发生逃逸,设置合理容量

总结
  1. 逃逸分析是编译器在静态编译时完成的
  2. 逃逸分析后可以确定哪些变量可以在分配栈上,栈的性能好
http://www.yayakq.cn/news/445882/

相关文章:

  • 东莞广告公司东莞网站建设中国建设银行网站个人收入证明
  • 图书馆网站建设的意义哪里网站建设联系方式
  • 三亚城乡建设局网站wordpress幻灯片插件使用
  • 烟台广告公司网站建设广州市白云区网站建设维护
  • 怎么搭建mysql数据库网站网站设计好不好
  • 怎么做刷东西的网站织梦网站源码
  • 临沂龙文网站建设php美食网站开发背景
  • 开源企业网站制作公司网站的公司
  • 网站留言系统是怎么做的上海网站建设维护
  • 塘厦镇网站建设网站qq临时会话代码
  • 手机医疗网站做推广的网站那个好
  • 简单网页制作产品seo怎么优化
  • 什么网站用vue做的律师网站模板
  • 网站pv是什么意思技术开发合同
  • 微信公众号的h5网站开发erp网站建设
  • 在线网站推广工具天猫购买平台
  • 塘下春华网站建设江西小程序app开发公司
  • php个人网站电脑网页
  • 网站设计排名北京的广州建网站的公司
  • 这几年做哪个网站致富dedecms 5.7 关闭网站
  • 中国建设银行招聘官网站南京seo代理商
  • 交换机可以做网站跳转吗东莞横沥邮编
  • 免费自助设计网站化妆品网站建设网站
  • 怎么做钓鱼网站生成wordpress权限数字
  • 软件下载网站如何建设基于诗歌网站开发开题报告
  • 网站怎么建淮南装饰公司网站建设
  • 食品网站建设优化案例wordpress通用页面模板下载地址
  • 网站信息同步福田祥菱m1图片及报价
  • 中国世界排名第几?厦门seo厦门起梦
  • 企业网站分析与优化网络规划设计师教程第2版2021版pdf