Jeśli chodzi o tworzenie gier mobilnych na iOS i Android NDK, niektórzy programiści piszą własne kontenery C ++, podczas gdy inni twierdzą, że STL jest więcej niż wystarczający do tworzenia gier mobilnych (na przykład autor iPhone 3D Programming używa STL zamiast Objective- W swoich przykładach C. Jego obrona polega na tym, że STL nie jest wolniejszy niż Cel C).
Są też programiści mobilni, którzy całkowicie porzucają C ++ i całkowicie opracowują gry w języku C (C89 / C90).
Jakie są zalety i wady każdego podejścia?
c++
android
ios
optimization
mx2
źródło
źródło
Odpowiedzi:
Pozwól, że powiem ci najpierw. C ++ jest szybszy niż wywołania Objective-C. Cel C korzysta z systemów przekazywania komunikatów, więc będzie miał trochę narzutu w porównaniu do C ++. Wystarczy spojrzeć na niektóre porównania tutaj .
Jeśli chodzi o ogólne opracowanie „aplikacji” na iOS, sensowne jest korzystanie z wbudowanych funkcji Objective-C, ponieważ wydajność nie może być do pewnego stopnia wieloma kryteriami. Ale przy opracowywaniu gier musimy wziąć pod uwagę te wyniki.
Kiedy pracowałem nad moim poprzednim projektem (Robokill), zoptymalizowaliśmy większość kodu tam, gdzie było to konieczne, z wywołaniami zwykłego C (przekonwertowaliśmy naszą klasę cząstek Objective-C na klasę C ++). Lub możesz nawet użyć funkcji środowiska wykonawczego Objective-C do bezpośrednich wywołań C.
Przechodząc do twojego pytania, oto moja odpowiedź: tak, STL jest dobrze zoptymalizowany do swoich celów . Mimo że kod implementacji jest mało czytelny, warto sprawdzić implementację raz.
Możemy jednak do pewnego stopnia zoptymalizować kod Objecive-C, wstępnie buforując wskaźniki funkcji i wykonując wywołania w środowisku wykonawczym Objective-C.
Mam nadzieję że to pomoże!
źródło