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

你做我评网站会自动查论文相似度吗企业管理培训课程讲座大全

你做我评网站会自动查论文相似度吗,企业管理培训课程讲座大全,有哪些好的网页设计,单位网站建设目的概念: 死码消除(dead code elimination, DCE) 是一种编译器优化技术, 作用是在编译阶段去掉对程序运行结果没有任何影响的代码 和 逃逸分析[1],内联优化[2]并称为 Go编译器执行的三个重要优化 效果: 对于 const.go代码如下: package mainimport "fmt"func max(a, b i…

概念:


死码消除(dead code elimination, DCE) 是一种编译器优化技术, 作用是在编译阶段去掉对程序运行结果没有任何影响的代码

逃逸分析[1],内联优化[2]并称为 Go编译器执行的三个重要优化




效果:


对于 const.go代码如下:

package main

import "fmt"

func max(a, b int) int {
 if a > b {
  return a
 }
 return b
}

const a, b = 1020

func main() {
 if max(a, b) == a {
  fmt.Println(a)
 }
}

对于var.go代码如下:

package main

import "fmt"

func max2(x, y int) int {
 if x > y {
  return x
 }
 return y
}

var x, y = 1020

func main() {
 if max2(x, y) == x {
  fmt.Println(x)
 }
}

两个文件的差异,只在于 两个参数 是变量还是常量


分别编译 const.govar.go, 生成的二进制文件大小如下:

go build -o 想要生成的二进制名称 想要编译的.go文件

alt

不难发现, constvar 体积小了约 10%


为何如此?


首先编译器会对max函数进行内联优化, const.go 优化后如下:

package main

import "fmt"

const a, b = 1020

func main() {
 var result int
 if a > b {
  result = a
 } else {
  result = b
 }
 if result == a {
  fmt.Println(a)
 }
}
alt

因为 ab是常量, 永远有a<b, 编译器可以在编译时证明该分支永远不会为true, 因此编译器可以进一步优化代码为:

alt

if a > b {}这个分支被消除了,这称为分支消除


又知道结果总是等于b,因此编译器还将进一步将代码优化为:

package main

const a, b = 1020

func main() {
 const result = b

}

最后就是:

package main

func main() {
}

而对于var.go, 参数为 全局变量 不为常量,编译器并不知道运行过程中x、y会不会发生改变, 因此不能进行死代码消除.

这部分代码被编译到最终的二进制程序中, 造成 二进制文件 varconst 体积大了约 10%


分支消除是死码消除一种. 使用静态证明来表明一段代码永远不可达,通常会被称为死代码,它不需要在最终的二进制文件中编译和优化.

编译器在编译阶段, 死码消除与内联优化一起工作, 可以减少循环和分支产生的代码数量

参考资料

[1]

逃逸分析: https://dashen.tech/2021/05/29/golang%E9%80%83%E9%80%B8%E6%8A%80%E6%9C%AF%E5%88%86%E6%9E%90/

[2]

内联优化: https://dashen.tech/2021/05/22/Go%E4%B8%AD%E7%9A%84%E5%86%85%E8%81%94%E4%BC%98%E5%8C%96

本文由 mdnice 多平台发布

http://www.yayakq.cn/news/20729/

相关文章:

  • 长春网站建设q479185700棒wordpress数据库破解版
  • wordpress网站图片迁移行业网站分类
  • 揭阳高端品牌网站建设圆梦科技专业网站建设
  • lamp环境做网站百度网络推广怎么收费
  • 荆门建网站费用珠海网站制作外包
  • 扬州商城网站制作手机免费建站app
  • 哪个网站可以做链接域名查询 查询网
  • 网站诊断案例wordpress 产品视频上传
  • 青岛市蓝色经济区建设官方网站廊坊中小企业网站制作
  • 欧美风格外贸网站建设电脑网络公司经营范围
  • 网站建设旗帜条幅竞价托管哪家公司好
  • 华为荣耀手机商城官方网站重庆做商城网站
  • 自动化项目外包网网站换空间不换域名对seo有影响吗
  • 潜力的网站设计制作工人找工作哪个网站好
  • 一个网站开发的假设wordpress推荐文章插件
  • 自己做广告用什么软件湛江seo推广外包
  • 网站仿学校官网入口
  • 网站制作流程和方法湘潭做网站 磐石网络
  • 网站用绝对路径好还是相对路径seo做网站美工的理由
  • 网站开发一次性费用泰安公司网站建设价格查询
  • 网站建设被骗维护费建网站要买服务器吗
  • 网站建设和运营wordpress定时任务原理
  • 温州做微网站设计python做网站原理
  • 手机网站怎么搭建西宁最好网站建设公司哪家好
  • 河南郑州广告公司网站建设网络服务合同范本免费
  • 手机图片网站 模版dedecms企业网站模板
  • 网站建设 系统 排名wap是什么意思歌词
  • 杭州做微信网站软件公司网站建设 计划书
  • 网站架构设计师简历网站内容更新及时
  • 网站建设捌金手指花总二六网站运营与管理的一个目的