zl程序教程

您现在的位置是:首页 >  其他

当前栏目

golang测试

2023-09-11 14:16:09 时间

转自
http://studygolang.com/articles/1155
http://www.tuicool.com/articles/RnMJrm

参考:
http://blog.golang.org/profiling-go-programs
http://google-perftools.googlecode.com/svn/trunk/doc/cpuprofile.html

代码
要在Go语言中开启profiling,可以参考以下代码:

import (

"runtime/pprof" // 引用pprof package

"os"

)
func main() {

f, _ := os.Create("profile_file")

pprof.StartCPUProfile(f) // 开始cpu profile,结果写到文件f中

defer pprof.StopCPUProfile() // 结束profile

}

运行
运行程序,生成profile文件 分析
在命令行上执行:

go tool pprof [binary] [profile]
进入pprof环境后,可以用help命令查看帮助信息
最常用的命令如top10,可以看最耗时的function
这里详细解释一下top命令的输出格式,例如:
14 2.1% 17.2% 58 8.7% std::_Rb_tree::find
各字段的含义依次是:

采样点落在该函数中的次数 采样点落在该函数中的百分比 上一项的累积百分比 采样点落在该函数,以及被它调用的函数中的总次数 采样点落在该函数,以及被它调用的函数中的总次数百分比
使用Docker和Golang进行便捷的MongoDB测试 本文讲的是使用Docker和Golang进行便捷的MongoDB测试,【编者的话】Docker的使用场景之一就是测试,在测试中,我们有时候会由于超时或者仅仅因为两个开发版本使用相同的数据库在同时运行而导致测试出错。
区块链交易所搭建开发_平台_测试_系统智能合约ATOM代示例 Cosmos(ATOM)没有传统意义上的原生智能合约,因为它没有自己的图灵完备编程语言。 相反,Cosmos 使用区块链间通信 (IBC) 协议来允许不同区块链之间的通信和价值转移。 这允许开发人员构建跨越多个区块链的去中心化应用程序。