Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Arm64EC ("Kompatibel Emulasi") memungkinkan Anda untuk membangun aplikasi asli baru atau secara bertahap transisi aplikasi x64 yang ada untuk memanfaatkan kecepatan dan performa asli yang mungkin dilakukan dengan perangkat bertenaga Arm, termasuk konsumsi daya yang lebih baik, masa pakai baterai, dan beban kerja AI dan ML yang dipercepat.
Arm64EC adalah antarmuka biner aplikasi baru (ABI) untuk aplikasi yang berjalan di perangkat Arm dengan Windows 11. Ini adalah fitur Windows 11 yang memerlukan penggunaan Windows 11 SDK dan tidak tersedia di Windows 10 di Arm.
Interoperabilitas
Kode yang dibangun sebagai Arm64EC dapat beroperasi secara kompatibel dengan kode x64 yang berjalan di bawah emulasi dalam proses yang sama. Kode Arm64EC dalam proses berjalan dengan performa asli, sementara kode x64 berjalan dengan menggunakan emulasi yang dilengkapi bawaan dengan Windows 11. Bahkan jika aplikasi Anda bergantung pada dependensi atau plugin yang ada yang belum mendukung Arm, Anda dapat mulai membangun kembali bagian aplikasi Anda sebagai Arm64EC untuk mendapatkan manfaat performa asli.
Arm64EC menjamin interoperabilitas dengan x64 dengan mengikuti konvensi perangkat lunak x64, termasuk konvensi panggilan, penggunaan tumpukan, tata letak struktur data, dan definisi praprosesor. Namun, kode Arm64EC tidak kompatibel dengan kode yang dibangun sebagai Arm64, yang menggunakan serangkaian konvensi perangkat lunak yang berbeda.
Sistem operasi Windows 11 pada Arm sendiri sangat bergantung pada interoperabilitas Arm64EC untuk memungkinkan menjalankan aplikasi x64. Sebagian besar kode sistem operasi yang dimuat oleh aplikasi x64 yang berjalan pada Windows 11 di Arm dikompilasi sebagai Arm64EC, memungkinkan performa asli untuk kode tersebut tanpa diketahui aplikasi.
Proses x64 atau Arm64EC dapat memuat dan memanggil biner x64 dan Arm64EC, sedangkan proses Arm64 hanya dapat memuat biner Arm64. Kedua arsitektur dapat memuat biner Arm64X karena berisi kode untuk x64 dan Arm64.
| Arsitektur proses | biner x64 | Biner Arm64EC | Biner Arm64 |
|---|---|---|---|
| x64/Arm64EC | Supported | Supported | Tidak didukung |
| Arm64 | Tidak didukung | Tidak didukung | Supported |
Demikian pula, pada waktu build, biner Arm64EC dapat menautkan di libs x64 dan Arm64EC, sementara biner Arm64 hanya dapat menautkan di arm64 libs.
| Arsitektur PE | x64 lib | Arm64EC lib | Arm64 lib |
|---|---|---|---|
| Arm64EC | Supported | Supported | Tidak didukung |
| Arm64 | Tidak didukung | Tidak didukung | Supported |
Untuk detail selengkapnya tentang bagaimana Arm64EC ABI memungkinkan interoperabilitas, lihat Memahami Arm64EC ABI dan kode perakitan.
Gunakan Arm64EC untuk membuat aplikasi yang ada lebih cepat di Windows 11 di Arm
Arm64EC memungkinkan Anda untuk secara bertahap mentransisikan kode di aplikasi yang ada dari yang ditiru ke asli. Pada setiap langkah di sepanjang jalan, aplikasi Anda terus berjalan dengan baik tanpa perlu dikompresi ulang sekaligus.
Gambar sebelumnya menunjukkan contoh yang disederhanakan dari beban kerja x64 yang sepenuhnya diemulasikan, yang memerlukan sejumlah waktu tertentu, dan kemudian dioptimalkan secara bertahap menggunakan Arm64EC.
- Dimulai sebagai beban kerja x64 yang sepenuhnya ditimulasi
- Setelah mengkompilasi ulang bagian yang paling intensif CPU sebagai Arm64EC
- Setelah terus mengkombinasi ulang lebih banyak modul x64 dari waktu ke waktu
- Mengakhiri hasil dari aplikasi Arm64EC yang sepenuhnya asli
Dengan mengkompilasi ulang modul yang membutuhkan waktu paling lama atau paling intensif CPU dari x64 ke Arm64EC, Anda mendapatkan peningkatan paling banyak untuk jumlah upaya paling sedikit di setiap langkah.
Dependensi Aplikasi
Ketika Anda menggunakan Arm64EC untuk membangun kembali aplikasi, gunakan versi dependensi Arm64EC tetapi Anda juga dapat mengandalkan dependensi versi x64. Anda tidak dapat menggunakan dependensi versi Arm64.
Kode x64 apa pun, termasuk kode dari ketergantungan, dalam proses Arm64EC dijalankan dalam mode emulasi di aplikasi Anda. Prioritaskan dependensi yang paling intensif CPU untuk bertransisi dari x64 ke Arm64EC dalam rangka meningkatkan performa aplikasi Anda.
Mengidentifikasi biner dan aplikasi Arm64EC
Aplikasi yang berjalan di Windows 11 pada Arm berinteraksi dengan biner Arm64EC seakan biner tersebut adalah x64. Aplikasi ini tidak perlu tahu sejauh mana kode dalam biner dikompilasi ulang sebagai Arm64EC.
Untuk mengidentifikasi biner ini, Anda dapat melihatnya di prompt perintah pengembang dengan menggunakan link /dump /headers.
File Type: EXECUTABLE IMAGE
FILE HEADER VALUES
8664 machine (x64) (ARM64X)
Kombinasi (x64) dan (ARM64X) menunjukkan bahwa beberapa bagian biner dikompilasi ulang sebagai Arm64EC, meskipun biner masih tampak x64. Biner dengan header mesin yang berisi (ARM64) dan (ARM64X) adalah file Arm64X PE yang dapat dimuat ke dalam aplikasi x64 dan Arm64.
Anda juga dapat menggunakan Windows Task Manager untuk mengidentifikasi apakah aplikasi dikompilasi sebagai Arm64EC. Di tab Detail manajer Tugas, kolom Arsitektur menunjukkan ARM64 (kompatibel x64) untuk aplikasi yang dapat dieksekusi utamanya sebagian atau sepenuhnya dikompilasi sebagai Arm64EC.
Langkah berikutnya
Lihat Mulai menggunakan Arm64EC untuk mempelajari cara membuat atau memperbarui aplikasi Win32 menggunakan Arm64EC.
Windows on Arm