2015-08-18 3 views
-3
package main 

import "fmt" 

func main() { 
    fmt.Println("Hello world") 
} 

Команда go run a.go.
Этот код нуждается в 4 ~ 5s в окнах.golang slow in Windows

+0

Окружающая среда - это окна 64, переход 1.5rc1 – zywj

+2

'go run a.go' медленный, потому что он компилирует код и затем запускает его. Попробуйте использовать 'go build' или' go install', который будет генерировать исполняемый двоичный файл ('a.exe'). Теперь попробуйте запустить этот .exe-файл, и вы сразу увидите результат печати. – icza

+1

Понятия не имею, почему этот вопрос имеет так много downvotes. Да, это немного неспецифично, но 'go run' действительно очень медленный в Windows, даже в самых новых версиях. Я думаю, что вторая часть ответа @Zan Lynx - причина этого. –

ответ

3

Я считаю, что go run компилирует код, а затем запускает его. Известно, что Go 1.5 намного медленнее при компиляции. (Прочитайте примечания к выпуску) Разработчики полностью конвертировали код Go, но пока не оптимизировали его для Go.

Также Go использует диски POSIX и сетевые операции. Я не верю, что кто-то оптимизировал Go для портов завершения и Windows asynch IO.

+0

Я подозреваю, что влияние времени компиляции для такой простой программы между 1.4 и 1.5 почти неизмеримо. Воздействие, скорее всего, будет связано с командной строкой Windows, но без какой-либо дополнительной информации (есть ли OP 1.4, было ли это лучше?), Это просто догадки. – elithrar