分析 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分析它。

    12.7.1 分析HTTP服务 - 图2