Ho notato anche questo, ma a meno che non si noti una diminuzione della velocità, potrebbe essere considerata una micro-ottimizzazione. La conversione tra float
e int
è relativamente costosa mentre la conversione tra float
e double
è economica. Pertanto, ovunque non sia necessario eseguire una conversione da float
a int
, è possibile evitarla. La trasmissione di tipo è generalmente più economica della conversione effettiva (ad esempio utilizzando Convert.ToInt32
). Tuttavia, è improbabile che tutto ciò rappresenti un collo di bottiglia a meno che non lo si esegua molte volte. Inoltre, da this post:
- float, double e int moltiplicazioni hanno le stesse prestazioni ==> usare il giusto tipo di numero per la vostra applicazione, nessuna preoccupazione
- il telefono è 4x a 10x più lento rispetto alla PC che utilizzo per sviluppare le mie app ==> test con un telefono reale, non fidarti del PC per le operazioni matematiche
- le divisioni sono fino a 8 volte più lente delle moltiplicazioni! ==> non utilizzare le divisioni, ad es. tenta di utilizzare 1/a quindi moltiplicare
numeri non ufficiali, ma credo che l'ultimo è piuttosto un metodo accettato. Inoltre, si ritiene che i doppi siano più lenti dei float, ma questo dipende dal sistema su cui è in esecuzione. AFAIK, Windows Phone è ottimizzato per l'utilizzo di doubles
, che spiegherebbe la classe Math
che accetta quelli.
Tutto sommato, direi che è abbastanza comune vedere che il cast si presenta piuttosto con il framework XNA. Ovviamente, dovrebbe essere evitato quando possibile, ma è improbabile che sia la fonte dei colli di bottiglia per i giochi a meno che non sia necessario eseguirlo spesso, nel qual caso altre aree potrebbero essere più facili da ottimizzare (o potrebbe essere necessaria una riprogettazione della struttura del gioco).
Se possibile, utilizzare la classe XNA 'MathHelper'. Ha alcuni metodi e costanti che sono float. http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.mathhelper%28v=XNAGameStudio.40%29.aspx – SomeWritesReserved
Hm, è molto bello! :) Solo le cose mancanti sono le funzioni trigonometriche. – Venemo