Windows 64 Bit Untuk Pengembang Game – Produsen prosesor secara eksklusif mengirimkan prosesor windows 64-bit di komputer desktop mereka, dan bahkan chipset dari sebagian besar komputer laptop mendukung teknologi x64.
Windows 64 Bit Untuk Pengembang Game
windows64.com – Penting bagi pengembang game untuk memanfaatkan peningkatan yang ditawarkan prosesor windows 64-bit dengan aplikasi baru mereka dan untuk memastikan bahwa aplikasi mereka sebelumnya berjalan dengan benar pada prosesor baru dan edisi windows 64-bit Windows Vista dan Windows 7. Artikel ini mengatasi masalah kompatibilitas dan porting dan membantu pengembang mempermudah transisi mereka ke platform windows 64-bit.
Baca Juga : Windows 10 32 atau 64 bit Manakah Arsitektur yang Tepat untuk Anda?
Arsitektur windows 64-bit memungkinkan pengembang untuk mendorong batasan tentang tampilan, suara, dan permainan game. Namun, transisi dari pemrograman 32-bit ke pemrograman windows 64-bit bukanlah hal yang sepele. Dengan memahami perbedaan antara keduanya, dan dengan menggunakan alat terbaru, transisi ke platform windows 64-bit bisa lebih mudah dan lebih cepat.
Microsoft saat ini memiliki sistem operasi windows 64-bit berikut:
- Windows 10
- Windows 11
- Windows Server 2019 atau lebih baru
- Sistem operasi windows 64-bit sebelumnya:
- Paket Layanan Windows Server 2003 1
- Windows XP Professional x64 Edition (tersedia untuk OEM dan pengembang melalui MSDN)
- Windows Vista
- Windows 7
- Windows 8.0
- Windows 8.1
- Windows Server 2008 – 2016
Perbedaan dalam Memori Beralamat
Hal pertama yang diperhatikan sebagian besar pengembang adalah bahwa prosesor windows 64-bit memberikan lompatan besar dalam jumlah memori fisik dan virtual yang dapat ditangani.
Aplikasi 32-bit pada platform 32-bit dapat menangani hingga 2 GB.
Aplikasi 32-bit yang dibuat dengan flag linker /LARGEADDRESSAWARE:YES pada Windows XP atau Windows Server 2003 32-bit dengan opsi boot khusus /3gb dapat menangani hingga 3 GB. Ini membatasi kernel hanya 1 GB yang dapat menyebabkan beberapa driver dan/atau layanan gagal.
Aplikasi 32-bit yang dibuat dengan flag linker /LARGEADDRESSAWARE:YES pada Windows Vista, Windows Server 2008, dan Windows 7 edisi 32-bit dapat menangani memori hingga jumlah yang ditentukan oleh elemen data konfigurasi boot (BCD) MeningkatkanUserVa. PeningkatanUserVa dapat memiliki nilai mulai dari 2048, default, hingga 3072 (yang sesuai dengan jumlah memori yang dikonfigurasi oleh opsi boot /3gb pada Windows XP). Sisa 4 GB dialokasikan ke kernel dan dapat mengakibatkan kegagalan konfigurasi driver dan layanan.
Untuk informasi selengkapnya tentang BCD, lihat Data Konfigurasi Boot .
- Aplikasi 32-bit pada platform windows 64-bit dapat menangani hingga 2 GB, atau hingga 4 GB dengan flag linker /LARGEADDRESSAWARE:YA.
- Aplikasi windows 64-bit menggunakan 43 bit untuk pengalamatan, yang menyediakan 8 TB alamat virtual untuk aplikasi dan 8 TB disediakan untuk kernel.
Lebih dari sekadar memori, aplikasi windows 64-bit yang menggunakan I/O file yang dipetakan memori mendapat banyak manfaat dari peningkatan ruang alamat virtual. Arsitektur windows 64-bit juga telah meningkatkan kinerja floating-point dan melewati parameter lebih cepat. Prosesor windows 64-bit memiliki dua kali lipat jumlah register, baik jenis general purpose dan streaming SIMD extensions (SSE), serta dukungan untuk set instruksi SSE dan SSE2; banyak prosesor windows 64-bit bahkan mendukung set instruksi SSE3.
Menentukan Large-Address-Aware Saat Membangun
Ini adalah praktik yang baik untuk menentukan besar-alamat-sadar ketika membangun aplikasi 32-bit, dengan menggunakan tanda penghubung /LARGEADDRESSAWARE, bahkan jika aplikasi tidak ditujukan untuk platform windows 64-bit, karena keuntungan yang diperoleh tanpa biaya. Seperti dijelaskan sebelumnya, mengaktifkan flag ini untuk build memungkinkan program 32-bit mengakses lebih banyak memori dengan opsi boot khusus pada OS 32-bit atau pada OS windows 64-bit. Namun, pengembang harus berhati-hati agar asumsi pointer tidak dibuat, seperti asumsi bahwa bit tinggi tidak pernah disetel dalam pointer 32-bit. Secara umum, mengaktifkan flag /LARGEADDRESSAWARE adalah praktik yang baik.
Aplikasi 32 bit yang peka terhadap alamat besar dapat menentukan pada waktu berjalan berapa banyak total ruang alamat virtual yang tersedia untuk mereka dengan konfigurasi OS saat ini dengan memanggil GlobalMemoryStatusEx . Hasil ullTotalVirtual akan berkisar dari 2147352576 byte (2 GB) hingga 4294836224 byte (4 GB). Nilai yang lebih besar dari 3221094400 (3 GB) hanya dapat diperoleh pada Windows edisi windows 64-bit. Misalnya, jika IncreaseUserVa memiliki nilai 2560, hasilnya adalah ullTotalVirtual dengan nilai 2684223488 byte.
Kompatibilitas Aplikasi 32-Bit pada Platform windows 64-bit
Sistem operasi Windows windows 64-bit adalah biner yang kompatibel dengan arsitektur IA32, dan sebagian besar API yang digunakan aplikasi 32-bit tersedia melalui Windows 32-bit pada Windows windows 64-bit Emulator, WOW64. WOW64 membantu memastikan bahwa API ini akan berfungsi sebagaimana dimaksud. WOW 64 memiliki lapisan eksekusi yang menangani penyusunan data 32-bit. WOW64 mengalihkan permintaan file DLL, mengalihkan beberapa cabang registri untuk aplikasi 32-bit, dan mencerminkan beberapa cabang registri untuk aplikasi 32- dan windows 64-bit. Informasi lebih lanjut tentang WOW64 dapat ditemukan di Detail Implementasi WOW64 .
Potensi Jebakan Kompatibilitas
Sebagian besar aplikasi yang dikembangkan untuk platform 32-bit akan berjalan tanpa masalah pada platform windows 64-bit. Beberapa aplikasi mungkin mengalami masalah, yang mungkin mencakup hal berikut:
Semua driver untuk sistem operasi Windows edisi windows 64-bit harus versi windows 64-bit. Memerlukan driver windows 64-bit baru memiliki implikasi untuk skema perlindungan salinan yang mengandalkan driver lama. Perhatikan bahwa driver mode kernel harus ditandatangani oleh Authenticode untuk dimuat oleh Windows edisi windows 64-bit.
Proses windows 64-bit tidak dapat memuat DLL 32-bit, dan proses 32-bit tidak dapat memuat DLL windows 64-bit. Pengembang harus memastikan bahwa versi windows 64-bit DLL pihak ketiga tersedia sebelum melanjutkan pengembangan. Jika Anda harus menggunakan DLL 32-bit dalam proses windows 64-bit, maka komunikasi antar-proses (IPC) Windows dapat digunakan. Komponen COM juga dapat menggunakan server di luar proses dan menyusun untuk berkomunikasi antar batas, tetapi hal itu dapat menimbulkan penalti kinerja.
Banyak prosesor x64 juga merupakan prosesor multi-inti, dan pengembang perlu menguji bagaimana hal ini memengaruhi aplikasi lama mereka. Informasi lebih lanjut tentang prosesor multi-core dan implikasinya untuk aplikasi game dapat ditemukan di Game Timing dan Multicore Processors . Selain itu, pengembang perlu mewaspadai program 16-bit yang mungkin masih mereka gunakan. WOW64 tidak dapat menangani aplikasi 16-bit; ini termasuk installer lama dan semua program MS-DOS.
Memindahkan Aplikasi ke Platform windows 64-bit
Memiliki alat dan pustaka yang tepat akan membantu memudahkan transisi dari pengembangan 32-bit ke windows 64-bit. DirectX 9 SDK memiliki library untuk mendukung proyek berbasis x86 dan x64. Microsoft Visual Studio 2005 dan Visual Studio 2008 mendukung pembuatan kode untuk x86 dan x64, dan mereka dilengkapi dengan pustaka yang dioptimalkan untuk menghasilkan kode x64. Namun, pengembang juga perlu mendistribusikan runtime Visual C dengan aplikasi mereka. Perhatikan bahwa Edisi Ekspres Visual Studio 2005 dan Visual Studio 2008 tidak menyertakan kompiler x64, tetapi semua edisi Standar, Profesional, dan Sistem Tim menyertakannya.
Pengembang yang menargetkan platform 32-bit dapat mempersiapkan pengembangan windows 64-bit untuk mempermudah transisi mereka di kemudian hari. Saat mengkompilasi proyek 32-bit, pengembang harus menggunakan flag /Wp64, yang akan menyebabkan munculnya peringatan tentang masalah yang memengaruhi portabilitas. Beralih ke alat dan pustaka windows 64-bit mungkin akan menghasilkan banyak kesalahan pembuatan baru pada awalnya; jadi, disarankan untuk mengganti alat dan pustaka bit-netral dan memperbaiki peringatan apa pun sebelum beralih ke build windows 64-bit.
Mengubah alat, mengubah perpustakaan, dan menggunakan flag compiler tertentu tidak akan cukup. Asumsi dalam standar pengkodean harus dievaluasi ulang untuk memastikan bahwa standar pengkodean saat ini tidak memungkinkan masalah portabilitas. Masalah portabilitas dapat mencakup pemotongan pointer, ukuran dan penyelarasan tipe data, ketergantungan pada DLL 32-bit, penggunaan API lama, kode perakitan, dan file biner lama.