package main
import "fmt"
func main() {
fmt.Println("Hello world")
}
Команда go run a.go
.
Этот код нуждается в 4 ~ 5s в окнах.golang slow in Windows
package main
import "fmt"
func main() {
fmt.Println("Hello world")
}
Команда go run a.go
.
Этот код нуждается в 4 ~ 5s в окнах.golang slow in Windows
Я считаю, что go run
компилирует код, а затем запускает его. Известно, что Go 1.5 намного медленнее при компиляции. (Прочитайте примечания к выпуску) Разработчики полностью конвертировали код Go, но пока не оптимизировали его для Go.
Также Go использует диски POSIX и сетевые операции. Я не верю, что кто-то оптимизировал Go для портов завершения и Windows asynch IO.
Я подозреваю, что влияние времени компиляции для такой простой программы между 1.4 и 1.5 почти неизмеримо. Воздействие, скорее всего, будет связано с командной строкой Windows, но без какой-либо дополнительной информации (есть ли OP 1.4, было ли это лучше?), Это просто догадки. – elithrar
Окружающая среда - это окна 64, переход 1.5rc1 – zywj
'go run a.go' медленный, потому что он компилирует код и затем запускает его. Попробуйте использовать 'go build' или' go install', который будет генерировать исполняемый двоичный файл ('a.exe'). Теперь попробуйте запустить этот .exe-файл, и вы сразу увидите результат печати. – icza
Понятия не имею, почему этот вопрос имеет так много downvotes. Да, это немного неспецифично, но 'go run' действительно очень медленный в Windows, даже в самых новых версиях. Я думаю, что вторая часть ответа @Zan Lynx - причина этого. –