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

厦门企业如何建网站微信营销策略

厦门企业如何建网站,微信营销策略,洛阳网站建设汉狮报价,中小企业网站建设需要注意什么文章目录如何分析程序运行时间和CPU利用率情况1.shell内置time指令/usr/bin/time指令如何分析golang程序的内存使用情况#xff1f;1.内存占用情况查看如何分析golang程序的CPU性能情况1.性能分析注意事项2.CPU性能分析A.Web界面查看B.使用pprof工具查看如何分析程序运行时间和… 文章目录如何分析程序运行时间和CPU利用率情况1.shell内置time指令/usr/bin/time指令如何分析golang程序的内存使用情况1.内存占用情况查看如何分析golang程序的CPU性能情况1.性能分析注意事项2.CPU性能分析A.Web界面查看B.使用pprof工具查看如何分析程序运行时间和CPU利用率情况 1.shell内置time指令 time是Unix/linux内置多命令使用时一般不用传过多参数直接跟上需要调试多程序即可。 $ time go run test2.go {{0 0} 张三 0}real 0m0.843s user 0m0.216s sys 0m0.389s上面是使用time对 go run test2.go对执行程序坐了性能分析得到3个指标。 ● real从程序开始到结束实际度过的时间 ● user程序在用户态度过的时间 ● sys程序在内核态度过的时间。 一般情况下 real user sys因为系统还有其它进程(切换其他进程中间对于本进程会有空白期) /usr/bin/time指令 这个指令比内置的time更加详细一些使用的时候需要用绝对路径而且要加上参数-v $ /usr/bin/time -v go run test2.go Command being timed: go run test2.goUser time (seconds): 0.12System time (seconds): 0.06Percent of CPU this job got: 115%Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16Average shared text size (kbytes): 0Average unshared data size (kbytes): 0Average stack size (kbytes): 0Average total size (kbytes): 0Maximum resident set size (kbytes): 41172Average resident set size (kbytes): 0Major (requiring I/O) page faults: 1Minor (reclaiming a frame) page faults: 15880Voluntary context switches: 897Involuntary context switches: 183Swaps: 0File system inputs: 256File system outputs: 2664Socket messages sent: 0Socket messages received: 0Signals delivered: 0Page size (bytes): 4096Exit status: 0可以看到这里的功能要强大多了除了之前的信息外还包括了 ● CPU占用率 ● 内存使用情况 ● Page Fault 情况 ● 进程切换情况 ● 文件系统IO ● Socket 使用情况 ● …… 如何分析golang程序的内存使用情况 1.内存占用情况查看 package mainimport (logruntimetime )func test() {//slice 会动态扩容用slice来做堆内存申请container : make([]int, 8)log.Println( loop begin.)for i : 0; i 32*1000*1000; i {container append(container, i)}log.Println( loop end.) }func main() {log.Println(Start.)test()log.Println(force gc.)runtime.GC() //强制调用gc回收log.Println(Done.)time.Sleep(3600 * time.Second) //睡眠保持程序不退出 }编译 $go build -o snippet ./snippet然后在./snippet进程没有执行完我们再开一个窗口通过top命令查看进程的内存占用情况 $top -p $(pidof snippet_mem)结果如下 我们看出来没有退出的snippet_mem进程有约830m的内存被占用。 直观上来说这个程序在test()函数执行完后切片contaner的内存应该被释放不应该占用830M那么大。 结论 1、在test()函数执行完后demo程序中的切片容器所申请的堆空间都被垃圾回收器回收了。 2、如果此时在top指令查询内存的时候如果依然是800MB说明垃圾回收器回收了应用层的内存后可能并不会立即将内存归还给系统。 如何分析golang程序的CPU性能情况 1.性能分析注意事项 ● 性能分析必须在一个 可重复的、稳定的环境中来进行。 ○ 机器必须闲置 ■ 不要在共享硬件上进行性能分析; ■ 不要在性能分析期间在同一个机器上去浏览网页 ○ 注意省电模式和过热保护如果突然进入这些模式会导致分析数据严重不准确 ○ 不要使用虚拟机、共享的云主机太多干扰因素分析数据会很不一致 ○ 不要在 macOS 10.11 及以前的版本运行性能分析有 bug之后的版本修复了。 如果承受得起购买专用的性能测试分析的硬件设备上架。 ● 关闭电源管理、过热管理; ● 绝不要升级以保证测试的一致性以及具有可比性。 如果没有这样的环境那就一定要在多个环境中执行多次以取得可参考的、具有相对一致性的测试结果 2.CPU性能分析 利用以下代码进行测试 package mainimport (bytesmath/randtimelognet/http_ net/http/pprof )func test() {log.Println( loop begin.)for i : 0; i 1000; i {log.Println(genSomeBytes())}log.Println( loop end.) }//生成一个随机字符串 func genSomeBytes() *bytes.Buffer {var buff bytes.Bufferfor i : 1; i 20000; i {buff.Write([]byte{0 byte(rand.Intn(10))})}return buff }func main() {go func() {for {test()time.Sleep(time.Second * 1)}}()//启动pprofhttp.ListenAndServe(0.0.0.0:10000, nil)}这里面还是启动了pprof的监听,有关pprof启动的代码如下 import (net/http_ net/http/pprof )func main() {//...//...//启动pprofhttp.ListenAndServe(0.0.0.0:10000, nil) }main()里的流程很简单,启动一个goroutine去无限循环调用test()方法,休眠1s. test()的流程是生成1000个20000个字符的随机字符串.并且打印. 我们将上面的代码编译成可执行的二进制文件 demo4(记住这个名字,稍后我们能用到) $ go build demo4.go接下来我们启动程序,程序会无限循环的打印字符串. 接下来我们通过几种方式来查看进程的cpu性能情况. A.Web界面查看 浏览器访问http://127.0.0.1:10000/debug/pprof/ 我们会看到如下画面 这里面能够通过pprof查看包括(阻塞信息、cpu信息、内存堆信息、锁信息、goroutine信息等等), 我们这里关心的cpu的性能的profile信息. 有关profile下面的英文解释大致如下: “CPU配置文件。您可以在秒GET参数中指定持续时间。获取概要文件后请使用go tool pprof命令调查概要文件。” 所以我们要是想得到cpu性能,就是要获取到当前进程的profile文件,这个文件默认是30s生成一个,所以你的程序要至少运行30s以上(这个参数也可以修改,稍后我们介绍) 我们可以直接点击网页的profile,浏览器会给我们下载一个profile文件. 记住这个文件的路径, 可以拷贝到与demo4所在的同一文件夹下. B.使用pprof工具查看 pprof 的格式如下 go tool pprof [binary] [profile]binary: 必须指向生成这个性能分析数据的那个二进制可执行文件 profile: 必须是该二进制可执行文件所生成的性能分析数据文件。 binary 和 profile 必须严格匹配。 我们来查看一下: $ go tool pprof ./demo4 profileFile: demo4 Type: cpu Time: Mar 3, 2020 at 11:18pm (CST) Duration: 30.13s, Total samples 6.27s (20.81%) Entering interactive mode (type help for commands, o for options) (pprof)help可以查看一些指令,我么可以通过top来查看cpu的性能情况. (pprof) top Showing nodes accounting for 5090ms, 81.18% of 6270ms total Dropped 80 nodes (cum 31.35ms) Showing top 10 nodes out of 60flat flat% sum% cum cum%1060ms 16.91% 16.91% 2170ms 34.61% math/rand.(*lockedSource).Int63850ms 13.56% 30.46% 850ms 13.56% sync.(*Mutex).Unlock (inline)710ms 11.32% 41.79% 2950ms 47.05% math/rand.(*Rand).Int31n570ms 9.09% 50.88% 990ms 15.79% bytes.(*Buffer).Write530ms 8.45% 59.33% 540ms 8.61% syscall.Syscall370ms 5.90% 65.23% 370ms 5.90% runtime.procyield270ms 4.31% 69.54% 4490ms 71.61% main.genSomeBytes250ms 3.99% 73.52% 3200ms 51.04% math/rand.(*Rand).Intn250ms 3.99% 77.51% 250ms 3.99% runtime.memmove230ms 3.67% 81.18% 690ms 11.00% runtime.suspendG (pprof)这里面有几列数据,需要说明一下. ● flat当前函数占用CPU的耗时 ● flat%:当前函数占用CPU的耗时百分比 ● sum%函数占用CPU的耗时累计百分比 ● cum当前函数加上调用当前函数的函数占用CPU的总耗时 ● cum%当前函数加上调用当前函数的函数占用CPU的总耗时百分比 ● 最后一列函数名称 通过结果我们可以看出, 该程序的大部分cpu性能消耗在 main.getSoneBytes()方法中,其中math/rand取随机数消耗比较大.
http://www.w-s-a.com/news/679542/

相关文章:

  • 潍坊优化网站排名淘宝做网站被骗
  • 建设专业网站的利弊免费logo设计生成器下载
  • 怎么在备案号添加网站网页设计动画网站
  • 网站开发 只要wordpress滑动注册
  • 跨境电商运营主要做什么静态网站如何做优化
  • 南充网站建设网站网站备案安全责任书是谁盖章
  • 怎么将网站设置为首页网站子目录怎么做
  • 做网站交互wordpress信息导出
  • 如何自己做企业网站做外贸登录国外网站
  • 郑州炫彩网站建设网站集约化建设调研报告
  • 2016年两学一做教育网站优良的定制网站建设制作商
  • 自己做网站需要哪些流程网站建设服务费如何做会计分录
  • 莆田建站培训用手机制作游戏的app软件
  • 中山建网站找哪家wordpress采集图片插件
  • 网站首页做后台链接有什么好用的模拟建站软件
  • 宁波有没有开发网站的公司网站上线除了备案还需要什么
  • 网站备案授权wordpress默认主体设置
  • 厦门微信网站广州推广策划公司
  • 集团公司网站开发asp网站怎么运行
  • 广州短视频网站开发东莞市建设信息网
  • 建设网站如果赚钱电脑可以做服务器部署网站吗
  • 网站建设的编程专门做面包和蛋糕的网站
  • 档案网站建设比较分析南京建站公司
  • 哪个网站可以做店招傻瓜式wordpress
  • 网站开发项目经理职责青岛模版网站建设
  • 企业建站哪个好网站建设所用程序
  • 网站建设seo视频定制图片软件
  • 404错误直接转向到网站首页四川省建筑施工企业人员考试平台
  • 手表电商网站智能展厅
  • 南海网站推广梅州做网站公司