benchmarky
Proč je vaše sestava QEMU arm64 40× pomalejší
Změřené rozdělení emulovaného versus nativního arm64 Docker se skládá z pěti skutečných pracovních zátěží a proč se tresty tak liší.
Tomás Rivera · Výkonové inženýrství · 2026-06-11 · 8 min čtení
Přidání linux/arm64 do sestavení Docker je jeden řádek. Následkem je někdy 3× zpomalení a někdy 40× jedna a ten rozdíl lidi mate. Není to náhodné.
Mechanismus
QEMU v emulaci uživatelského režimu převádí instrukce arm64 na instrukce x64 za běhu. Překlad má pevnou režii na instrukci. Pokuta se tedy odvíjí od toho, kolik instrukcí vaše sestavení provede – ne podle toho, jak dlouho to trvá, a ne podle velikosti obrázku.
Sestavení, které kopíruje soubory a spouští apt-get, provádí relativně málo instrukcí. Sestavení, na kterém běží kompilátor, provede obrovské množství.
Měřeno
Vzor je čistý: čím více se vaše sestavení zkompiluje, tím horší bude emulace. Pokud váš Dockerfile vyvolá kompilátor, QEMU není životaschopná strategie.
Oprava
Sestavte každou architekturu na vlastním hardwaru a sloučte výtahy do seznamu manifestů. Je to více YAML než jedna linka platforem a je to rozdíl mezi třemi minutami a dvěma hodinami.
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.