分析 HTTP 服务
注意,如果您的分析器工作在 http://localhost:8080
地址,您将从 如下 web 链接获得支持:
下面被展示的程序将使用 www.go
做为起始点,并添加必要的 Go 代码允许您去分析它。这个新程序命名为 wwwProfile.go
,分为四部分展示。
注意,wwwProfile.go
将使用一个 http.NewServeMux
变量用于注册程序支持的路径。这样做的主要原因是,使用 http.NewServeMux
需要手动定义 HTTP 端点。如果您决定不使用 ,那么 HTTP 端点将自动注册,这也意味着您将使用 _
字符在引入的 net/http/pprof
包前。
wwwProfile.go
第一部分包含的 Go 代码如下:
这俩个处理函数的实现与之前的一样。
在上面的 Go 代码中,您使用 http.NewServeMux()
和 HandleFunc()
定义您的 web 服务支持的 URL。
wwwProfile.go
的第三段代码如下:
上面的 Go 代码定义与分析相关的 HTTP 端点。没有它们,您将不能分析您的 web 应用。
余下的 Go 代码如下:
这段代码启动 web 服务,并允许它服务来自 HTTP 客户端的连接。您会注意到 http.ListenAndServe()
的第二个参数不再是 nil
。
执行 wwwProfile.go
将产生如下输出:
使用 Go 分析器获取数据是相当简单的任务,执行下面的命令将带您自动进入 Go 分析器的 shell。
如您在第11章(代码测试,优化和分析)中了解到的,您现在可以使用这个分析数据,并使用 go tool pprof
分析它。