Le specifiche di tipo variabile portano a differenze di prestazioni?

0

Diciamo che ho un metodo lungo molto che fondamentalmente crea un layout reattivo e ridimensionabile per un'interfaccia utente usando alcuni valori fissi e alcuni variabili presi dalle coordinate di un elemento e dalla larghezza / altezza dimensioni. Per ottenere il layout desiderato, il mio codice deve eseguire operazioni matematiche di base ma ripetitive (aggiunte, sottrazioni, moltiplicazioni e divisioni) per ottenere le coordinate e le dimensioni di ogni elemento.

Il mio codice è scritto in Objective-C.

Diciamo anche che voglio che il mio codice sia estremamente veloce, perché verrà eseguito su dispositivi a prestazioni limitate, come i dispositivi mobili.

Dal momento che voglio ottenere prestazioni elevate, fare una dichiarazione molto precisa per la variabile ha un impatto sulle prestazioni? Ad esempio, il compilatore saprà se il valore è un const o unsigned e ottimizza il codice.

Ad esempio, quale di questi casi è più veloce degli altri?

  1. const unsigned int kInteger = 20;
  2. const int kInteger = 20;
  3. int integer = 20;
  4. unsigned int integer = 20;

In altre parole, aiutare il compilatore ha davvero un impatto sulle prestazioni? O è solo una perdita di tempo dal momento che è tutto solo micro-ottimizzazione?

    
posta Aluminum 05.02.2016 - 10:37
fonte

1 risposta

3

Posso suggerire di non guardare le prestazioni in questo modo?

Ci stai pensando prima scrivendo il codice.

Invece, scrivi il codice, fallo funzionare e allora scopri quali sono i problemi di reale . La possibilità che tu abbia indovinato correttamente in anticipo cosa sono è molto piccola.

Ecco un esempio di come farlo.

Ora, dopo averlo fatto, e non prima , inizierai a riconoscere il tipo di cose che causano problemi di prestazioni ed evitali nella successiva codifica.

    
risposta data 06.02.2016 - 19:27
fonte

Leggi altre domande sui tag