kriterler
QEMU arm64 yapınız neden 40 kat daha yavaş?
Taklit edilmiş ve yerel arm64 Docker'ın ölçülü bir dökümü, beş gerçek iş yükünü temel alır ve cezanın neden bu kadar çok değiştiğini gösterir.
{yazar} · {rol} · {tarih} · {dakika} {dakika Etiketi}
Bir Docker yapısına linux/arm64 eklemek bir satırdır. Sonuç bazen 3 kat, bazen 40 kat yavaşlama oluyor ve aradaki fark insanların kafasını karıştırıyor. Rastgele değil.
Mekanizma
Kullanıcı modu emülasyonundaki QEMU, arm64 talimatlarını çalışma zamanında x64 talimatlarına dönüştürür. Çevirinin talimat başına sabit yükü vardır. Dolayısıyla ceza, ne kadar sürdüğü ya da görüntü boyutuyla değil, yapınızın kaç talimat çalıştırdığına göre ölçeklenir.
Dosyaları kopyalayan ve apt-get'i çalıştıran bir yapı, nispeten az sayıda talimat yürütür. Bir derleyiciyi çalıştıran bir yapı çok büyük sayıda işlemi yürütür.
Ölçülen
Desen temiz: Yapınız ne kadar çok derlenirse öykünme o kadar kötü olur. Dockerfile'ınız bir derleyiciyi çağırıyorsa QEMU geçerli bir strateji değildir.
Düzeltme
Her mimariyi kendi donanımı üzerinde oluşturun ve özetleri bir bildirim listesi halinde birleştirin. Tek bir platform hattından daha fazla YAML'dir ve üç dakika ile iki saat arasındaki farktır.
Bir sonraki build'iniz yarı fiyata iki kat hızlı olabilir
Ücretsiz başlayın. Ayrılmak da aynı tek satır ve o diff'i de yayımlıyoruz.