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

北京知名网站建设公司wordpress 重复内容

北京知名网站建设公司,wordpress 重复内容,最新互联网企业排名,wordpress 404.php文章目录 要从C/C谈起Golang的内存逃逸 要从C/C谈起 在C/C中#xff0c;局部变量被分配到栈区#xff0c;一旦当前函数执行完毕#xff0c;局部变量占用的内存也将被释放#xff0c;因此以下代码无法将数组的内容传递出去。 int *getArray() {int array[7] {1, 2, 3, 4,… 文章目录 要从C/C谈起Golang的内存逃逸 要从C/C谈起 在C/C中局部变量被分配到栈区一旦当前函数执行完毕局部变量占用的内存也将被释放因此以下代码无法将数组的内容传递出去。 int *getArray() {int array[7] {1, 2, 3, 4, 5, 6, 7};return array; }int main() {int *array getArray();for (int i 0; i 7; i) {cout array[i] , ;}return 0; }因为当getArray()执行完毕后array数组的内存就被释放了返回的array指针是一个野指针。再访问这个指针得到的是不确定的、无意义的数据。 解决办法是利用动态内存分配使用new关键字申请一个堆区的内存(C使用mallocC使用new)将以上代码中定义数组的行替换为 int *array new int[7]{1, 2, 3, 4, 5, 6, 7}; // tips:这种初始化写法是C11的特性这样就可以把getArray()中创建的数组传递出去使用完毕后编写delete[] array;释放内存。 Golang的内存逃逸 不同于C/CGolang的内存分配是完全由编译器自动管理的开发者无法干预。 在Golang中内存逃逸指的是在函数中分配的局部变量或对象由于其生命周期需要延长或在函数外部继续使用导致编译器将其分配到堆区而不是栈区的情况。这种情况下变量或对象的生命周期超出了原本的作用域需要在堆上分配内存以保证数据的有效性。 Go编译器在编译时会尽量将变量分配到栈区以提高内存的访问速度。但是如果编译器无法确定变量的声明周期是否会超出作用域就会将其分配到堆上以确保数据访问的有效性。这种情况就被称为内存逃逸。简单说就是局部变量被分配到了堆区。 当函数外部对指针没有引用时优先分配在栈上。以下是一些触发内存逃逸的情况 在函数中返回指针如果在函数中创建一个局部变量然后返回它的指针那么这个变量很可能会逃逸到堆上因为它需要在函数退出后仍然可访问。在函数中开启 goroutine如果在函数内部开启了一个 goroutine并将局部变量传递给这个 goroutine这个变量可能会逃逸因为 goroutine 可能在函数退出后继续访问该变量。变量被闭包使用如果一个闭包引用了外部函数的局部变量这个变量也可能会逃逸到堆上因为闭包可能会在函数退出后继续存在。变量占用空间太大如果一个局部变量很大超过了栈的大小限制编译器可能会将其分配到堆上以避免栈溢出。 内存逃逸听起来好像有什么东西跑掉了一样乍一听给人一种不好的信号。实际上它并不是太值得关注的问题。 内存逃逸通常不会引发大问题因为Go的垃圾回收器会自动管理内存。当然使用栈上的内存更具有性能如果你特别在意这种性能的话以下是一些避免内存逃逸的方法 避免闭包 闭包可能导致变量的生命周期延长从而导致内存逃逸。尽量避免在闭包中使用外部变量。避免返回指针或引用 返回指向局部变量的指针或引用会导致内存逃逸。(Go有三个引用类型slicemapchan)返回数组而不是切片(slice)数组是值类型的切片是引用类型的。使用值类型的接收器(receiver) 当定义方法时如果不需要修改接收器的状态尽量使用值类型的接收器而不是指针接收器可以减少内存逃逸的可能性。使用编译器分析工具可以使用go build -gcflags-m命令来触发编译器的逃逸分析报告。这会在编译过程中输出逃逸分析的结果帮助我们了解哪些变量逃逸到了堆上。
http://www.yutouwan.com/news/365769/

相关文章:

  • 域名和网站空间网站后台优化
  • 一诺千金 网站建设cps广告联盟
  • 注册网站地址网络营销与直播电商专业学什么就业方向是什么
  • 东营免费网站制作设计网站公司长沙
  • 企业3合1网站建设制作自己盈利的网站
  • 如何提升进入网站的速度大气红色网站
  • 做美篇发网站菠菜建设网站
  • 西安有一个电影他要拉投资做网站学网页设计制作
  • 网站主机与服务器宁津有培训做网站的
  • 微信借口的网站怎么做采购信息发布
  • 免费域名做网站线下广告宣传方式有哪些
  • 怎么选择网站建设公司网站登陆注册怎么做
  • 苏州怎么做网站排名优化安康免费做网站公司
  • 淞南网站建设做网站 用 云主机
  • 专业购物网站定制淮北矿业工程建设公司网站
  • 东莞清洁服务网站建设未来的软件开发方向是什么
  • 杭州微网站建设公司哪家好网站开发相关技术
  • 数据百度做网站好用吗济源市建设网站
  • 邯郸网站建设选哪家郑州第一附属医院不孕不育科
  • 好的策划方案网站做h5页面网站有哪些
  • 怎么做网站搜索引擎大良营销网站建设市场
  • 创建免费论坛的10个网站郑州seo排名优化
  • 金融网站建设银行四川做网站设计公司价格
  • 做网站美工未来规划百科网站模板
  • 北海网站制作公司柳州建设网官方网站
  • 企业网站是什么一家专门做母婴的网站
  • 做的网站显示不了背景图片wordpress电商主题完成度
  • 知名跟单网站做信号提供方如何开发电子商务网站
  • 什么是网站静态化怎样做网站跳转
  • 建设银行互联网网站首页定远网站开发