gout 是 http 请求库,如果找一个熟悉的事物来类比,那就是追求成为瑞士军刀这样一个超级作品,收藏过瑞士军刀的朋友都知道,它有很多小的部件,很难想像它小巧的身体下面集齐力那么多的工具。有了它能解决生活中很多棘手的问题。向如此有工匠精神的物件致敬。希望有一天 gout 也能让大家由哀地发出这样的想法。当然作者要做的就是时间为朋友,不停地在现有基础上优化,新的版本比上个版本有所进步。
https://github.com/guonaihong/gout
输出 API 各个阶段耗时 Dns---> tcp connect ---> send request ---> wait result ---> read result,可以很方便论断性能
gout.Trace()可输出 http 各个阶段的耗时,比如 dns lookup 时间,tcp 连接时间等等。可以很方便的做些性能调优。
package main
import (
"fmt"
"github.com/guonaihong/gout"
)
func openDebugTrace() {
err := gout.POST(":8080/colorjson").
Debug(gout.Trace()).
SetJSON(gout.H{"str": "foo",
"num": 100,
"bool": false,
"null": nil,
"array": gout.A{"foo", "bar", "baz"},
"obj": gout.H{"a": 1, "b": 2},
}).Do()
if err != nil {
fmt.Printf("err = %v\n", err)
}
}
=================== Trace Info(S): ===================
DnsDuration : 0s
ConnDuration : 868.623µs
TLSDuration : 0s
RequestDuration : 376.712µs
WaitResponeDuration : 717.008µs
ResponseDuration : 76.158µs
TotalDuration : 2.13921ms
=================== Trace Info(E): ===================
欢迎试用,如有建议,欢迎提issue
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.