我有几个go程序,它们中有一个未使用的net/http/pprof端口。
import _ "net/http/pprof"
...
//http.ListenAndServe("127.0.0.1:6060", nil)我想知道从CPU和Mem的角度来看,这个导入的开销是多少。是啊。我应该去掉它(是的),但是如果我忘记了会有什么影响呢?
相关:这种进口的确切副作用是什么?它注册了一些http处理程序,但是它是否也将一些东西注入到go的malloc函数中?
发布于 2014-10-24 11:04:26
导入net/ http /pprof包的开销非常有限:它只是为http服务器安装了一些处理程序。请参阅源代码:
http://golang.org/src/pkg/net/http/pprof/pprof.go
CPU分析在初始化时不被激活,在调用/debug/pprof/profile REST服务时只激活一段时间(默认情况下是30秒)。因此,使用此包进行编译不会对应用程序的性能产生很大影响(除了需要为http服务器提供额外的goroutines之外)。
现在,在/debug/pprof/profile的执行过程中,CPU采样被激活,因此需要性能开销。如果对相应端口的访问仅限于应用程序的管理员,则可以将其用于生产代码。
https://stackoverflow.com/questions/26545159
复制相似问题