arm64 bez QEMU
Multi-architekturní sestavení obrazu
Sestavte každou architekturu na nativním hardwaru a publikujte jeden seznam manifestů. Žádná penalizace za emulaci.
Všude domorodec
amd64 staví na amd64, arm64 staví na arm64. Tak, jak to mělo být.
Jeden manifest
Digesty se spojí do jediné značky, kterou spotřebitelé normálně táhnou.
5×–40× rychlejší
Kolik přesně závisí na tom, jak moc se váš obrázek zkompiluje.
Emulace QEMU je výchozí cestou pro sestavení s více oblouky a to je důvod, proč tolik týmů tiše upustilo od podpory arm64. Emulace celého řetězce nástrojů kompilátoru je tak pomalá, jak to zní.
Časté dotazy
- Proč je QEMU o tolik pomalejší?
- Za běhu překládá každou instrukci arm64 do x64, takže penalizace se rovná počtu instrukcí, které vaše sestava provede. Obraz zkopírovaný do souboru je asi 3× pomalejší; sestavení Rust nebo C++ je 35–40× pomalejší.
- Jak mohu publikovat jednu značku pro obě architektury?
- Sestavte každou architekturu na jejím vlastním nativním běhu, push by digest a poté se spojte s docker buildx imagetools. Spotřebitelé normálně táhnou za značku.
- Potřebuji samostatné mezipaměti pro každou architekturu?
- Ano, a jsou automaticky odděleny. Zahrnout runner.arch také do všech akcí/klíče mezipaměti nebo x64 cache obnovená na arm64 vytváří spíše matoucí chyby linkeru než čisté chybění.
Váš další build může být dvakrát rychlejší za poloviční cenu
Začněte zdarma. Odchod je tentýž jeden řádek a i ten diff zveřejňujeme.