>백엔드 개발 >Golang >golang 컴파일이 빠른 이유는 무엇입니까?

golang 컴파일이 빠른 이유는 무엇입니까?

(*-*)浩
(*-*)浩원래의
2019-12-14 13:11:593526검색

golang 컴파일이 빠른 이유는 무엇입니까?

내 홈 라우터(R6300v2)에서 Go로 작성된 도구를 실행하고 싶습니다. 호스트 x64 및 대상 arm을 위한 go 크로스 컴파일러를 구축해야 합니다. 공식 문서와 결과를 읽는 데 몇 분이 걸렸습니다. 정말 간단하네요:                                                                                                                        (배우는 것이 좋습니다: go)

$ git clone .../go && cd go && git checkout go1.4.2
$ cd src
$ GOOS=linux GOARCH=arm GOARM=5 ./make.bash

이전에 gcc 툴체인을 크로스 컴파일한 경험에 따르면 컴파일에는 몇 분에서 10분 이상이 걸립니다. 결과 내 E3 1230v3 + 256G Plextor M6S에서 go 컴파일(라이브러리 포함)은 20초 미만, 어쩌면 10초 미만이 걸렸습니다. git clone보다 빠릅니다.

Go 컴파일러는 9개의 명령어 세트를 지원합니다. 아키텍처 전반에 걸쳐 컴파일러 품질에는 중요한 차이가 있습니다.

amd64(也称为x86-64)
成熟的实现。
386(x86或x86-32)
与amd64端口相当。
arm(ARM)
支持Linux,FreeBSD,NetBSD,OpenBSD和Darwin二进制文件。没有其他端口广泛使用。
arm64(AArch64)
支持Linux和Darwin二进制文件。1.5中的新功能,没有其他端口那么好用。
ppc64, ppc64le (64位PowerPC大端和小端)
支持Linux二进制文件。1.5中的新功能,没有其他端口那么好用。
mips, mipsle (32位MIPS大端和小端)
支持Linux二进制文件。1.8中的新功能,没有其他端口那么好用。
mips64, mips64le (64位MIPS大端和小端)
支持Linux二进制文件。1.6中的新功能,没有其他端口那么好用。
s390x (IBM System z)
支持Linux二进制文件。1.7中的新功能,没有其他端口那么好用。
wasm (WebAssembly)
定位到WebAssembly平台。1.11中的新功能,没有其他端口那么好用。

런타임 지원은 표시 및 청소 가비지 수집기, 유효한 배열 및 문자열 슬라이싱, 유효한 고루틴(예: 스택) 지원을 포함한 기본 운영 체제 인터페이스 코드와 같은 항목을 제외하고 모든 포트에서 동일합니다. 지원하다. 필요에 따라 늘리고 줄입니다.

컴파일러는 DragonFly BSD, FreeBSD, Linux, NetBSD, OpenBSD, macOS(Darwin), Plan 9, Solaris 및 Windows 운영 체제를 대상으로 할 수 있습니다.

소스에서만 빌드할 수 있는 시스템에는 다음과 같은 추가 제약 조건이 적용됩니다.

64비트 PowerPC의 Linux의 경우 지원되는 최소 커널 버전은 2.6.37입니다. 즉, Go는 이러한 시스템에서 CentOS 6을 지원하지 않습니다. .

위 내용은 golang 컴파일이 빠른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.