亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

goroutines 導致嚴重的減速和頭痛

goroutines 導致嚴重的減速和頭痛

Go
瀟瀟雨雨 2021-06-01 18:25:35
我在使用 goroutine 時遇到了一些問題。為什么這段代碼在 ~125ms 內執行(注意順序執行):package mainimport (  "os/exec"  "time"  "fmt")func main() {  cmd := exec.Command("lessc", "--yui-compress", "test.less")  n := 2000  start := time.Now()  for i := 0; i < n; i++ {    cmd.Run()  }  finish := time.Now()  fmt.Printf("Program took %v to run\n", finish.Sub(start))}當這段代碼需要大約 20 秒時(使用 goroutines 并發執行):package mainimport (  "os/exec"  "time"  "fmt")func main() {  cmd := exec.Command("lessc", "--yui-compress", "test.less")  ch := make(chan bool)  n := 2000  start := time.Now()  for i := 0; i < n; i++ {    go lessc(ch, cmd)  }  fmt.Println(n, " goroutines started.")  for i := 0; i < n; i++ {    _ = <-ch  }  finish := time.Now()  fmt.Printf("Program took %v to run\n", finish.Sub(start))}func lessc(ch chan bool, c *exec.Cmd) {  c.Run()  ch <- true}在 i7 720QM (4C/8T) 8GB RAM linux/x86-64 上使用 go 1.0.3 也使用 1.0.2 構建和測試,并在同一臺機器上遇到了同樣的問題。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號