Quando se trata de desenvolvimento de jogos para dispositivos móveis no NDK para iOS e Android, alguns desenvolvedores escrevem seus próprios contêineres C ++, enquanto outros afirmam que o STL é mais do que adequado para o desenvolvimento de jogos para dispositivos móveis (por exemplo, o autor da programação do iPhone 3D usa STL em vez de Objective- Em seus exemplos C. Sua defesa é que STL não é mais lento que o Objective-C).
Existem também desenvolvedores móveis que abandonam o C ++ completamente e desenvolvem jogos inteiramente (ou principalmente) na linguagem C (C89 / C90).
Quais são os benefícios e as desvantagens de cada abordagem?
c++
android
ios
optimization
mx2
fonte
fonte
Respostas:
Deixe-me dizer uma coisa primeiro. C ++ é mais rápido que chamadas de Objective-C. O Objective-C usa sistemas de passagem de mensagens, portanto, haverá uma sobrecarga de tempo de execução quando comparado ao C ++. Basta dar uma olhada em algumas das comparações aqui .
Chegando ao desenvolvimento geral de "aplicativos" para iOS, faz sentido usar as funções internas do Objective-C, pois o desempenho não pode ser um grande critério, até certo ponto. Mas no desenvolvimento de jogos, precisamos considerar esses resultados.
Quando eu estava trabalhando no meu projeto anterior (Robokill), otimizamos a maior parte do código sempre que necessário com chamadas em C simples (convertemos nossa classe de partículas Objective-C para uma classe C ++). Ou você pode até usar as funções de tempo de execução do Objective-C para chamadas diretas em C.
Chegando à sua pergunta, eis a minha resposta: sim, o STL está bem otimizado para sua finalidade . Embora o código de implementação não seja muito legível, é interessante verificar a implementação uma vez.
No entanto, podemos otimizar o código Objecive-C até certo ponto, pré-armazenando em cache os ponteiros de função e fazendo chamadas com o tempo de execução Objective-C.
Espero que isto ajude!
fonte