Pergunta

Eu ouvi que poderia ser uma boa idéia para desligar "compilar para o polegar" em configurações de um alvo iPhone para aumentar o desempenho. Eu estou tendo alguma dificuldade em encontrar essa configuração embora. Desde que eu não poderia encontrá-lo em meu projeto atual, eu decidi fazer uma nova (onde eu poderia encontrar e defini-lo), e copiar meus arquivos até lá (e também atualizar todas as libs que estou usando, ao mesmo tempo ).

Mas agora parece que esta definição tem disapperad a partir deste novo projeto também. Não importa o SDK eu escolher, simulador ou dispositivo, o cenário não vai aparecer nas configurações de destino! Eu não parecem, no entanto, ainda tem uma variável chamada GCC_THUMB_SUPPORT sob a categoria "User-definido" de repente. O que é isso?

Eu tentei fazer um novo alvo, mas o cenário não vai aparecer em que (nem mesmo GCC_THUMB_SUPPORT).

Foi útil?

Solução

GCC_THUMB_SUPPORT é a variável direita. Basta configurá-lo para Não para desativar a geração de código polegar.
A regra geral é, para desativá-lo se o seu código é flutuante pesado ponto :)
Mais sobre isso aqui .

Update:
O conselho para compilar para a instrução POLEGAR conjunto já não é válida (na verdade, uma vez que o iPhone 3GS).

Outras dicas

Descobri que as configurações do compilador ( "GCC 4.2 - Geração de Código", "GCC 4.2 - Language", etc) só aparecem na janela de informações do alvo construir configurações quando o SDK ativo está definido como dispositivo - e o "User-definido" categoria só aparece quando o SDK ativo é Simulator.

E sim, desativando compilação Thumb pode ser uma grande ajuda para o desempenho se você está lidando com um monte de matemática de ponto flutuante (por exemplo de ponto flutuante de processamento de áudio). Apesar de não ser, é claro, uma para todos os fins mágico speed-up (e supostamente código compilado-Thumb pode correr mais rápido em algumas situações), então você provavelmente vai encontrar apenas a desativação Thumb útil se o seu código tem esse tipo de gargalo.

"compilar para Thumb" deve estar sob Alvo / Get Info / GCC 4.2 - Geração de código . Se ele não está lá (eu ficaria surpreso se não é), defina a variável definida pelo usuário.

Tenha em mente que isso melhora o desempenho apenas sob um conjunto restrito de circunstâncias que você deve compreender antes de mexer com ele.

O conjunto de instruções padrão para ARM é de 4 bytes. Usando "compilar para Thumb", o compilador é capaz de usar instruções de 2 bytes. Isso resulta em uma biblioteca muito menor, mas também uma mais lenta (um tanto discutível). Mais criticamente, há problemas com o funcionamento sob ARMv6. No nosso caso, nós não poderia gerar saída estável de Monotouch (correção em alfa MT4.0). No Xcode, você pode encontrar a configuração clicando em seu alvo, e olhando sob Construir e à procura de "ouro". Mina está sob GCC 4.2 -. Geração de código, mas às vezes ele está sob LVVM GCC 4.2

compilar para Thumb

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top