go中的pprof导入开销有多大

Ric*_*kyA 17 go

我有几个go程序,其中有一个未使用的net/http/pprof输入.

import _ "net/http/pprof"
...
//http.ListenAndServe("127.0.0.1:6060", nil)
Run Code Online (Sandbox Code Playgroud)

我想知道这个导入的开销是多少CPU和Mem.阿卡.我应该删除产品(是的),但如果我忘了会有什么影响?

相关:这个导入的确切副作用是什么?它注册了一些http处理程序,但它是否也在go的malloc函数中注入了东西?

Did*_*zia 21

导入net/http/pprof包的开销非常有限:它只是为http服务器安装了一些处理程序.请参阅以下源代码:

http://golang.org/src/pkg/net/http/pprof/pprof.go

CPU分析在初始化时未激活,仅在调用/ debug/pprof/profile REST服务时激活一段时间(默认为30秒).因此,使用此程序包进行编译不应对应用程序的性能产生太大影响(除了需要额外的http服务器goroutine).

现在,在执行/ debug/pprof/profile期间,CPU采样被激活,因此预计会产生性能开销.我想它可以用于生产代码,前提是对相应端口的访问仅限于应用程序的管理员.

  • @user918176:废话。 (4认同)