Использование Vector2
медленнее двумя важными способами:
Создание одного может привести к вызову конструктора (хотя в некоторых типичных случаях он будет оптимизирован). Это дополнительный вызов метода. (Обратите внимание, что он не выделяет память.)
Вызов методов - и включает такие операторы, как +
и *
- включает вызов метода, который занимает время. Выполнение математических операций непосредственно на float
с (и это включает , работающее непосредственно на X
и Y
членах Vector2
- то есть, встраивание операторов), не включает метод звоните и, следовательно, быстрее.
Чтобы поставить на него фактическое число - вставка простых операторов (+
и *
) на Vector3
дает улучшение скорости на 380% (источник: " Понимание производительности XNA Framework " от Shawn Hargreaves).
Однако гораздо удобнее использовать векторные классы как есть. Так что , если вы не оптимизируете сложный математический код , такой как система частиц или физический движок, не беспокойтесь об этом!
(Также обратите внимание, что операторы на векторных типах, включая вызовы методов, уже безумно быстрые! Делать уже быстрые вещи быстрее не так полезно, как делать медленные быстрее! Как правило, улучшения производительности persue.)