Go开源项目推荐:500行代码确认请求时间花在哪

大家好,我是 polarisxu。

工作中遇到请求慢,难免想要查看时间都花在哪里了。办法肯定有不少,比如浏览器带的工具等。不过今天我要推荐一个命令行工具,目的有两个:

  • 安装、使用方便,可以清晰的看出时间花在哪里了,建议放入自己的常用工具箱;
  • Go 语言实现的,500 行左右代码,可以作为新手项目学习、练习、实战;

项目名称:httpstat,作者是 davecheney 大神。项目地址:https://github.com/davecheney/httpstat ,截止本文发布,Star 数 5.3k+。

先看使用的效果图:

最下面可以看到时间花在哪些阶段了,是不是一目了然?!

这个项目是受一个类似的 Python 项目启发的:https://github.com/reorx/httpstat 。实话说,这个时候 Go 的优势很明显:跨平台方便,安装方便。那个 Python 项目现在甚至建议 Windows 用户使用这个 Go 版本的。

httpstat 安装的话,go install 安装即可。看看使用说明:

$ httpstat
Usage: httpstat [OPTIONS] URL

OPTIONS:
  -4    resolve IPv4 addresses only
  -6    resolve IPv6 addresses only
  -E string
        client cert file for tls config
  -H value
        set HTTP header; repeatable: -H 'Accept: ...' -H 'Range: ...'
  -I    don't read body of request
  -L    follow 30x redirects
  -O    save body as remote filename
  -X string
        HTTP method to use (default "GET")
  -d string
        the body of a POST or PUT request; from file use @filename
  -k    allow insecure SSL connections
  -o string
        output file for body
  -v    print version number

ENVIRONMENT:
  HTTP_PROXY    proxy for HTTP requests; complete URL or HOST[:PORT]
                used for HTTPS requests if HTTPS_PROXY undefined
  HTTPS_PROXY   proxy for HTTPS requests; complete URL or HOST[:PORT]
  NO_PROXY      comma-separated list of hosts to exclude from proxy

从以上的选项可以看出支持的特性。

开头说了,这个项目的代码很少,可以作为一个实战项目学习。