Ketika datang ke pengembangan game mobile di iOS dan Android NDK, beberapa pengembang menulis wadah C ++ mereka sendiri, sementara yang lain mengklaim bahwa STL lebih dari cukup untuk pengembangan game mobile (Misalnya, penulis Pemrograman 3D iPhone menggunakan STL daripada Objective- C dalam contohnya, pembelaannya adalah bahwa STL tidak lebih lambat dari Objective-C).
Lalu ada juga pengembang seluler yang mengabaikan C ++ sepenuhnya dan mengembangkan game sepenuhnya (atau sebagian besar) dalam bahasa C (C89 / C90).
Apa manfaat dan kelemahan dari setiap pendekatan?
c++
android
ios
optimization
mx2
sumber
sumber
Jawaban:
Biarkan saya memberi tahu Anda satu hal dulu. C ++ lebih cepat dari panggilan Objective-C. Objective-C menggunakan sistem passing pesan sehingga akan memiliki beberapa overhead runtime bila dibandingkan dengan C ++. Lihat saja beberapa perbandingannya di sini .
Datang ke pengembangan "aplikasi" umum iOS, masuk akal untuk menggunakan fungsi bawaan Objective-C karena kinerja tidak dapat menjadi kriteria banyak sampai batas tertentu. Namun dalam pengembangan game, kita perlu mempertimbangkan hasil ini.
Ketika saya sedang mengerjakan proyek saya sebelumnya (Robokill), kami mengoptimalkan sebagian besar kode di mana pun diperlukan dengan panggilan polos-C (kami mengkonversi kelas partikel Objective-C kami ke kelas C ++). Atau Anda bahkan dapat menggunakan fungsi runtime Objective-C untuk panggilan C langsung.
Datang ke pertanyaan Anda, inilah jawaban saya: ya, STL dioptimalkan dengan baik untuk tujuannya . Meskipun kode implementasi tidak banyak dibaca, menarik untuk memeriksa implementasi sekali.
Namun, kita dapat mengoptimalkan kode Objecive-C sampai batas tertentu, dengan melakukan pre-caching pointer fungsi dan melakukan panggilan dengan runtime Objective-C.
Semoga ini membantu!
sumber