作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 gobench ,这有助于我们测试一个请求,并有几个关于性能的衡量标准。
我对发送我需要在每次调用中测试的 url 进行了修改。但是我发现调用该函数两次或更多次是不可能的。
func GobenchMain(currectRoute *string) {
startTime := time.Now()
var done sync.WaitGroup
results := make(map[int]*Result)
...
}
之后我意识到gobench文件的问题出在这部分:
signalChannel := make(chan os.Signal, 2)
signal.Notify(signalChannel, os.Interrupt, syscall.SIGTERM)
go func() {
_ = <-signalChannel
printResults(results, startTime)
os.Exit(0)
}()
最后,这是我希望进行调用的方式,并且可以发出更多的请求。
package main
import (
"fmt"
"gobench"
)
var searchRoutes = []string{
"http:www.myurl.com/request1",
"http:www.myurl.com/request2",
"http:www.myurl.com/request3",
"http:www.myurl.com/request4",
}
func main() {
for i := 0; i < len(searchRoutes); i++ {
gobench.GobenchMain(&searchRoutes[i])
}
...
}
如何调用我的 GobeachMain 多次?;目前使用这样的代码只能调用一次,因为在 gobench get 之后,结果会进入 os.exit(0),如果我删除这一行,程序就会等待
最佳答案
gobench
从未设计为用作库。
像这样调用二进制文件
package main
import (
"log"
"os/exec"
)
func gobench(url string) {
cmd := exec.Command("gobench", url)
err := cmd.Run()
if err != nil {
log.Fatalf("Command finished with error: %v", err)
}
}
var searchRoutes = []string{
"http:www.myurl.com/request1",
"http:www.myurl.com/request2",
"http:www.myurl.com/request3",
"http:www.myurl.com/request4",
}
func main() {
for i := 0; i < len(searchRoutes); i++ {
gobench(searchRoutes[i])
}
}
关于戈朗 : Testing several times using gobench,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24004783/
我正在编写一个脚本,我想在其中多次调用 gobench ,我收到了我应该以二进制方式阅读的建议,就像那样 package main import ( "log" "os/exec" )
我正在使用 gobench ,这有助于我们测试一个请求,并有几个关于性能的衡量标准。 我对发送我需要在每次调用中测试的 url 进行了修改。但是我发现调用该函数两次或更多次是不可能的。 func Go
我是一名优秀的程序员,十分优秀!