Přejít na obsah

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.