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

网站到期时间查询北京购物网站建设公司

网站到期时间查询,北京购物网站建设公司,关于教育网站的策划书,我的专业网站建设策划书起因 被同事灵魂拷问:图中这块空白是什么东西? 豆包回答说是数据采样不完整,特定函数或代码段未被调用之类的原因,感觉都不太合理。 之前看过一篇文章说:Heap Profiling的采样是无时无刻不在发生的,执行…

起因

被同事灵魂拷问:图中这块空白是什么东西?
在这里插入图片描述

豆包回答说是数据采样不完整,特定函数或代码段未被调用之类的原因,感觉都不太合理。
之前看过一篇文章说:Heap Profiling的采样是无时无刻不在发生的,执行一次profiling仅仅是dump一下迄今为止的数据快照。这篇文章更加推翻了前面"数据采样不完整"的假设。那火焰图中的空白到底是啥,我们亲自试一下。

实验

参考:使用火焰图对 Go 程序进行性能分析

实验设计

在一个函数中调用另外的函数,在多种位置申请内存,查看火焰图的空白情况。

前置准备

  1. 安装环境
  2. 编写测试代码
  3. 在Goland中运行测试代码,可以通过 pprof 的 HTTP 接口访问http://localhost:8000/debug/pprof/heap?debug=1
  4. 在终端中执行以下命令,在页面中展示火焰图。其中,-http=":8081"表示用于查看火焰图的端口,http://localhost:8000/debug/pprof/heap表示采集的数据源。需要注意,每次运行此命令时,生成的是当前堆快照,如果代码有变更,或者想要获取最新结果,需要中断后重新运行此命令。
    go tool pprof -http=":8081" http://localhost:8000/debug/pprof/heap
  5. 火焰图分析方法:选择VIEW - Flame Graph (old)后,再选择SAMPLE - alloc_space。我们主要看这个,其它的选项也可以参考。
    在这里插入图片描述

函数调用关系

func allocate1() {allocate2()allocate3()
}

代码1:allocate1本身占用空间

package mainimport ("net/http"_ "net/http/pprof""time"
)func allocate1() {var s []stringfor i := 0; i < 10000; i++ {// allocate1占用的空间for i := 0; i < 10; i++ {s = append(s, "This is a sample string")}// allocate2占用的空间allocate2()// allocate3占用的空间allocate3()}
}func allocate2() {var s []stringfor i := 0; i < 10; i++ {s = append(s, "This is a sample string")}
}
func allocate3() {var s []stringfor i := 0; i < 10; i++ {s = append(s, "This is a sample string")}
}func main() {go func() {for {allocate1()time.Sleep(1 * time.Second)}}()http.ListenAndServe(":8000", nil)
}

生成的火焰图:
在这里插入图片描述

代码2:allocate本身不占空间

把13-15行注释掉,让allocate1不占空间

package mainimport ("net/http"_ "net/http/pprof""time"
)func allocate1() {//var s []stringfor i := 0; i < 10000; i++ {// allocate1占用的空间//for i := 0; i < 10; i++ {// s = append(s, "This is a sample string")//}// allocate2占用的空间allocate2()// allocate3占用的空间allocate3()}
}func allocate2() {var s []stringfor i := 0; i < 10; i++ {s = append(s, "This is a sample string")}
}
func allocate3() {var s []stringfor i := 0; i < 10; i++ {s = append(s, "This is a sample string")}
}func main() {go func() {for {allocate1()time.Sleep(1 * time.Second)}}()http.ListenAndServe(":8000", nil)
}

生成的火焰图:
在这里插入图片描述

结论

当allocate1本身占用空间的时候,火焰图中的空白存在。当allocate1本身不占用空间的时候,火焰图被填满,不存在空白。说明空白的部分是上一级函数内部对象占用的空间。

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

相关文章:

  • 柳州正规网站建设加盟西安seo排名公司
  • 珠海多语种网站制作网站制作公司 顺的
  • 浙江网站建设营销网站开发包含上线吗
  • 大学网站建设与管理职责装饰公司网站规划方案
  • 珠宝网站源码专门做萝莉视频网站
  • 哪个网站做任务可以赚钱国内好的网站建设
  • 有谁知道知乎网站是谁做的建设工程信息网一体化平台
  • 网站服务器哪家好些建设部网站 标准定额司
  • 邯郸企业网站建设乐清比较好的设计公司
  • 重庆建筑证书查询网站教人做家务的网站
  • 表白网站在线制作app网址你懂我意思正能量免费
  • 备案 网站名称 重复建筑电工证查询网站
  • 平顶山公司做网站微信公众平台小程序在哪
  • 淮安集团网站建设好的模板网站
  • 巴零网站建设微信制作微网站开发
  • 怎么给网站绑定域名网站怎么加载图片做logo
  • wordpress函数调用库seo技术是什么意思
  • 企业网站源码 企业网站管理系统360如何做免费的网站
  • 品牌网站建设专业定制微信定制网站建设
  • 昆明网站建设SEO公司宁海县城镇建设局网站
  • 西安前端开发招聘重庆有哪些做优化的公司
  • 嵩县网站开发网站后台帐号
  • 网站设计公司有名乐云seo营口建网站
  • 北京网站公司哪家好陕西建设厅官网系统平台
  • 做个营销网站中国空间站图片
  • wordpress 执行了两次网站文字优化方案
  • 网站底部工信部链接怎么做物联网软件定制开发
  • php旅游网站开发小结一般自己怎么做网站
  • 网站 后台 回车不了旅游网站建设项目报告论文
  • 网页设计网站题目上海网站建设制作公