Я тоже это заметил, но если вы не заметите какого-либо снижения скорости, это можно считать микрооптимизацией.Преобразование между float
и int
относительно дорого, тогда как преобразование между float
и double
дешево.Поэтому там, где вам не нужно выполнять преобразование float
в int
, вы можете избежать этого.Типовое приведение обычно дешевле, чем фактическое преобразование (например, с использованием Convert.ToInt32
).Тем не менее, все это вряд ли будет узким местом, если вы не выполняете это много раз.Кроме того, из этого поста :
- умножения с плавающей, двойной и int одинаковой производительностью ==> используйте правильный тип числа для вашего приложения, не беспокойтесь
- телефон работает в 4–10 раз медленнее, чем ПК, который я использую для разработки своих приложений ==> тестировать на реальном телефоне, не доверяйте своему компьютеру математические операции
- деление до 8xмедленнее, чем умножения!==> не используйте деления, например, попробуйте использовать 1 / a, затем умножьте
Неофициальные числа, но я думаю, что последний является вполне приемлемым методом.Кроме того, удваивается, как часто полагают, медленнее, чем числа с плавающей запятой, но это зависит от системы, на которой он работает.AFAIK, Windows Phone оптимизирован для использования doubles
, что объясняет принятие классом Math
.
В целом, я бы сказал, что довольно часто можно увидеть, что кастинг происходит довольно часто с платформой XNA.Конечно, этого следует избегать всякий раз, когда это возможно, но вряд ли он станет источником узких мест для игр, если вам не нужно часто его выполнять, и в этом случае другие области может быть легче оптимизировать (или может потребоваться перепроектирование структуры игры).).