Чтобы объяснить происхождение идеи, что матричные операции XNA медленны:
Прежде всего, есть ошибка начального уровня: класс XNA Matrix
класса operator*
сделает несколько копий. Это медленнее, чем вы можете ожидать от эквивалентного кода C ++.
(Конечно, если вы используете Matrix.Multiply()
, то можете перейти по ссылке.)
Вторая причина заключается в том, что .NET Compact Framework, используемый XNA на Xbox 360, не имеет доступа к оборудованию VMX (SIMD), доступному для собственных игр C ++.
Вот почему вы продолжаете слышать, что это, по крайней мере, медленно. Как вы можете видеть из тестов, которые вы опубликовали - это не так уж и медленно, если сравнивать яблоки с яблоками.