gpt4 book ai didi

戈朗 : Testing several times using gobench

转载 作者:数据小太阳 更新时间:2023-10-29 03:32:09 26 4
gpt4 key购买 nike

我正在使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com