阅读本文大概需要 4 分钟。
大家好,我是 polarisxu。
工作中遇到请求慢,难免想要查看时间都花在哪里了。办法肯定有不少,比如浏览器带的工具等。不过今天我要推荐一个命令行工具,目的有两个:
- 安装、使用方便,可以清晰的看出时间花在哪里了,建议放入自己的常用工具箱;
- Go 语言实现的,500 行左右代码,可以作为新手项目学习、练习、实战;
项目名称:httpstat,作者是 davecheney 大神。项目地址:https://github.com/davecheney/httpstat,截止本文发布,Star 数 5.3k+。
先看使用的效果图:
![Go开源项目推荐:500行代码确认请求时间花在哪_编程语言](//dev-img.mos.moduyun.com/20231024/75eff453-965f-4c62-85af-4d49f9e06727.png)
最下面可以看到时间花在哪些阶段了,是不是一目了然?!
这个项目是受一个类似的 Python 项目启发的:https://github.com/reorx/httpstat。实话说,这个时候 Go 的优势很明显:跨平台方便,安装方便。那个 Python 项目现在甚至建议 Windows 用户使用这个 Go 版本的。
![Go开源项目推荐:500行代码确认请求时间花在哪_java_02](//dev-img.mos.moduyun.com/20231024/010f2237-e08d-470c-977e-c4fd01e966b2.png)
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
从以上的选项可以看出支持的特性。
开头说了,这个项目的代码很少,可以作为一个实战项目学习。
![Go开源项目推荐:500行代码确认请求时间花在哪_大数据_03](//dev-img.mos.moduyun.com/20231024/a9cd311b-e0c2-4b07-9a83-5f1bf0f62736.jpg)
我是 polarisxu,北大硕士毕业,曾在 360 等知名互联网公司工作,10多年技术研发与架构经验!2012 年接触 Go 语言并创建了 Go 语言中文网!著有《Go语言编程之旅》、开源图书《Go语言标准库》等。