Maison > développement back-end > Golang > le corps du texte

Pourquoi la compilation de Golang est-elle rapide ?

(*-*)浩
Libérer: 2019-12-14 13:11:59
original
3500 Les gens l'ont consulté

Pourquoi la compilation de Golang est-elle rapide ?

Si vous souhaitez exécuter un outil écrit en go sur votre routeur domestique (R6300v2), vous devez créer un compilateur croisé go pour l'hôte x64 et le bras cible. a pris quelques minutes pour lire le document officiel, et les résultats ont été aussi simples que : (Recommandé : GO )

$ git clone .../go && cd go && git checkout go1.4.2
$ cd src
$ GOOS=linux GOARCH=arm GOARM=5 ./make.bash
Copier après la connexion

D'après mon précédente expérience de compilation croisée de GCC Toolchain, compilez Cela prend de quelques minutes à plus de dix minutes. Résultats Sur mon E3 1230v3 + 256G Plextor M6S, la compilation (y compris les bibliothèques) a pris moins de 20 secondes, peut-être moins de 10 secondes. Plus rapide que git clone.

Le compilateur Go prend en charge neuf jeux d'instructions. Il existe des différences importantes dans la qualité du compilateur selon les architectures.

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中的新功能,没有其他端口那么好用。
Copier après la connexion

La prise en charge de l'exécution est la même pour tous les ports, à l'exception de choses telles que le code d'interface du système d'exploitation sous-jacent, y compris un garbage collector par marquage et balayage, un découpage de tableau et de chaîne valide et la prise en charge d'une prise en charge valide. pour les goroutines (par exemple pile). Grandissez et rétrécissez à la demande.

Le compilateur peut cibler les systèmes d'exploitation DragonFly BSD, FreeBSD, Linux, NetBSD, OpenBSD, macOS (Darwin), Plan 9, Solaris et Windows.

Les contraintes supplémentaires suivantes s'appliquent aux systèmes qui ne peuvent construire qu'à partir des sources :

Pour Linux sur PowerPC 64 bits, la version minimale du noyau prise en charge est 2.6.37, ce qui signifie que Go ne prend pas en charge CentOS 6 sur ces systèmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal