我有几个 go 程序有一个未使用的输入net/http/pprof
在他们中。
import _ "net/http/pprof"
...
//http.ListenAndServe("127.0.0.1:6060", nil)
我想知道这次导入的 CPU 和内存开销是多少。又名。我应该在产品中删除然后(是的),但是如果我忘记了会有什么影响?
相关:这种导入的确切副作用是什么?它注册了一些http处理程序,但它是否也在go的malloc函数中注入了东西?
导入 net/http/pprof 包的开销非常有限:它只是为 http 服务器安装一些处理程序。源代码见:
http://golang.org/src/pkg/net/http/pprof/pprof.go http://golang.org/src/pkg/net/http/pprof/pprof.go
CPU 分析在初始化时不会激活,仅在调用 /debug/pprof/profile REST 服务时激活一段时间(默认为 30 秒)。因此,使用此包进行编译不会对应用程序的性能产生太大影响(除了需要用于 http 服务器的额外 goroutine)。
现在,在执行 /debug/pprof/profile 期间,CPU 采样被激活,因此预计会有性能开销。我想它可以用于生产代码,前提是对相应端口的访问仅限于应用程序的管理员。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)