我想構建一個類似于 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 關注
- 214 瀏覽
添加回答
舉報
0/150
提交
取消