Aracılığıyla paylaş


Arm64EC - Arm'de yerel performans için uygulama derleme ve taşıma

Arm64EC ("Öykünme Uyumlu"), daha iyi güç tüketimi, pil ömrü ve hızlandırılmış yapay zeka ve ML iş yükleri dahil olmak üzere Arm destekli cihazlarla mümkün olan yerel hız ve performanstan yararlanmak için yeni yerel uygulamalar oluşturmanıza veya mevcut x64 uygulamalarını artımlı olarak geçirmenize olanak tanır.

Arm64EC, Windows 11 yüklü Arm cihazlarında çalışan uygulamalar için yeni bir uygulama ikili arabirimidir (ABI). Windows 11 SDK'sının kullanılmasını gerektiren ve Arm üzerinde Windows 10'da bulunmayan bir Windows 11 özelliğidir.

Birlikte çalışabilirlik

Arm64EC olarak oluşturulan kod, aynı işlem içinde öykünme altında çalışan x64 koduyla birlikte çalışır. İşlemdeki Arm64EC kodu yerel performansla çalışırken, tüm x64 kodları Windows 11 ile yerleşik olarak gelen öykünme kullanılarak çalıştırılır. Uygulamanız henüz Arm'yi desteklemeyen mevcut bağımlılıklara veya eklentilere bağımlı olsa bile, yerel performansın avantajlarından yararlanmak için uygulamanızın bölümlerini Arm64EC olarak yeniden derlemeye başlayabilirsiniz.

Arm64EC çağrı kuralı, yığın kullanımı, veri yapısı düzeni ve ön işlemci tanımları gibi x64 yazılım kurallarını izleyerek x64 ile birlikte çalışabilirliği garanti eder. Ancak Arm64EC kodu, farklı bir yazılım kuralları kümesi kullanan Arm64 olarak oluşturulan kodla uyumlu değildir.

Arm üzerinde Windows 11 işletim sistemi, x64 uygulamalarını çalıştırmayı etkinleştirmek için Arm64EC'in birlikte çalışabilirliğine bağlıdır. Arm üzerinde Windows 11 üzerinde çalışan bir x64 uygulaması tarafından yüklenen çoğu işletim sistemi kodu Arm64EC olarak derlenerek uygulamanın haberi olmadan bu kod için yerel performans sağlar.

Bir x64 veya Arm64EC işlemi hem x64 hem de Arm64EC ikili dosyalarına yüklenebilir ve çağrı yapabilirken, Arm64 işlemi yalnızca Arm64 ikili dosyalarını yükleyebilir. Hem x64 hem de Arm64 için kod içerdiği için her iki mimari de Arm64X ikili dosyalarını yükleyebilir.

Süreç mimarisi x64 ikili dosyası Arm64EC ikili dosyası Arm64 ikili dosyası
x64/Arm64EC Supported Supported Desteklenmez
Arm64 Desteklenmez Desteklenmez Supported

Benzer şekilde, derleme zamanında Arm64EC ikili dosyaları hem x64 hem de Arm64EC lib'lerinde bağlantı kurabilirken Arm64 ikili dosyaları yalnızca Arm64 lib'lerde bağlanabilir.

PE mimarisi x64 lib Arm64EC lib Arm64 lib
Arm64EC Supported Supported Desteklenmez
Arm64 Desteklenmez Desteklenmez Supported

Arm64EC ABI'nin birlikte çalışabilirliği nasıl sağladığı hakkında daha fazla bilgi için bkz. Arm64EC ABI ve derleme kodunu anlama.

Arm'de Windows 11'de mevcut bir uygulamayı daha hızlı hale getirmek için Arm64EC kullanma

Arm64EC, mevcut uygulamanızdaki kodun öykünmeden yerel çalışmaya kademeli olarak geçişini sağlar. Yol boyunca her adımda, uygulamanız aynı anda yeniden derlenmenize gerek kalmadan düzgün çalışmaya devam eder.

Arm64EC kullanarak Arm performansı üzerindeki artımlı güncelleştirme etkilerini gösteren örnek grafik

Önceki görüntüde, belli bir süre alan ve Arm64EC kullanılarak aşamalı olarak geliştirilen, tamamen öykünülmüş x64 iş yükünün basitleştirilmiş bir örneği gösterilmektedir.

  1. Tam öykünmüş bir x64 iş yükü olarak başlama
  2. En yoğun CPU kullanan parçaları Arm64EC olarak yeniden derledikten sonra
  3. Zaman içinde daha fazla x64 modülünü yeniden derlemeye devam ettikten sonra
  4. Tamamen yerel Arm64EC uygulamasının nihai sonucu

x64'ten Arm64EC'e kadar en çok zaman alan veya cpu açısından en yoğun olan modülleri yeniden derleyerek her adımda en az çaba harcamaya yönelik en iyi iyileştirmeyi elde edersiniz.

Uygulama bağımlılıkları

Bir uygulamayı yeniden derlemek için Arm64EC kullandığınızda, bağımlılıkların Arm64EC sürümlerini kullanın, ancak bağımlılıkların x64 sürümlerine de güvenebilirsiniz. Bağımlılıkların Arm64 sürümlerini kullanamazsınız.

Arm64EC işlemindeki bağımlılıklardan gelen kod da dahil olmak üzere tüm x64 kodları uygulamanızda öykünme altında çalışır. Uygulamanızın performansını geliştirmek için x64'ten Arm64EC'ye geçiş için en yoğun CPU kullanan bağımlılıkların önceliğini belirleyin.

Arm64EC ikili dosyalarını ve uygulamalarını tanımlama

Arm üzerinde Windows 11'de çalışan uygulamalar, x64 ikilileriymiş gibi Arm64EC ikili dosyalarıyla etkileşim kurar. Uygulamanın ikili dosyadaki kodun Arm64EC olarak ne ölçüde yeniden derlendiğini bilmesi gerekmez. 

Bu ikili dosyaları tanımlamak için, onları bir geliştirici komut isteminde link /dump /headers kullanarak görebilirsiniz.

File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
    8664 machine (x64) (ARM64X)

(x64) ve (ARM64X) birleşimi, ikili dosya hala x64 gibi görünse de ikilinin bir kısmının Arm64EC olarak yeniden derlendiğini gösterir. (ARM64) ve (ARM64X) içeren bir makine üst bilgisine sahip ikili dosya, hem x64 hem de Arm64 uygulamalarına yüklenebilen bir Arm64X PE dosyasıdır .

Bir uygulamanın Arm64EC olarak derlenip derlenmiş olmadığını belirlemek için Windows Görev Yöneticisi'ni de kullanabilirsiniz. Görev yöneticisinin Ayrıntılar sekmesinde Mimari sütunu, ana yürütülebilir dosyası kısmen veya tamamen Arm64EC olarak derlenmiş uygulamalar için ARM64 (x64 uyumlu) değerini gösterir.

Mimari ayrıntılarında ARM64'ün (x64 uyumlu) gösterildiği Görev Yöneticisi'nin ekran görüntüsü.

Sonraki Adımlar

Arm64EC kullanarak Win32 uygulamaları derlemeyi veya güncelleştirmeyi öğrenmek için bkz. Arm64EC ile çalışmaya başlama.