-2
考慮以下基準:去運行,性能
package main
import (
"io/ioutil"
"os"
"os/exec"
"testing"
)
func BenchmarkRun(b *testing.B) {
for i := 0; i < b.N; i++ {
source := `package main
import "fmt"
func main() {
fmt.Println("foo")
}`
if err := ioutil.WriteFile("cmd.go", []byte(source), 0777); err != nil {
b.Error(err)
}
defer os.Remove("cmd.go")
if err := exec.Command("go", "run", "cmd.go").Run(); err != nil {
b.Error(err)
}
}
}
這周圍0.3秒需要每個操作。
有什麼辦法可以加快編譯/運行週期嗎?
寫一個臨時文件和執行exec運行似乎很笨拙。有沒有辦法在不這樣做的情況下調用編譯器?
號編譯器依賴於輸入的文件,但你可以直接調用編譯器,但我懷疑節省mkdir'調用來創建臨時目錄中的情侶'將會節省很多時間。 – JimB