我想构建一个类似于 unix tool 的基准测试工具time。我目前拥有的是:package mainimport ( "fmt" "os" "os/exec" "time")func main() { command := os.Args[1] args := os.Args[2:] cmd := exec.Command(command, args...) start_time := time.Now().UnixNano() stdout, err := cmd.Output() if err != nil { println(err.Error()) return } print(string(stdout)) total_time := int64(time.Nanosecond) * (time.Now().UnixNano() - start_time) / int64(time.Millisecond) fmt.Println(total_time)}我的问题是,输出不是流式传输,而是一次全部打印出来,奇怪的是,对于某些程序根本没有。
2 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
我不确定您在这里尝试做什么,print(string(stdout))但这是不必要的,您面临的问题可能是那里滥用的副作用。
func main() {
command := os.Args[1]
args := os.Args[2:]
cmd := exec.Command(command, args...)
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
start_time := time.Now().UnixNano()
if err != nil {
fmt.Println(err.Error())
return
}
total_time := int64(time.Nanosecond) * (time.Now().UnixNano() - start_time) / int64(time.Millisecond)
fmt.Println(total_time)
}
- 2 回答
- 0 关注
- 185 浏览
添加回答
举报
0/150
提交
取消