2013-07-31 2 views
0

Можно ли сказать, что производительность приложения C, скомпилированного для/выполняющегося на архитектуре Intel, будет быстрее, чем то же приложение, которое кросс-скомпилировано для архитектуры ARM?Влияет ли кросс-компиляция на производительность приложения?

Я по существу спрашиваю, будет ли кросс-компиляция негативно влиять на производительность.

Спасибо!

+0

Не следует ожидать разные версии или в случае gcc или llvm, где есть параметры времени компиляции для самой компиляции, одна и та же версия, построенные разное время или места или полагающиеся на разные системные библиотеки, чтобы дать одинаковые результаты для одного и того же исходного кода и одной и той же цели. Один простой тест должен состоять в том, чтобы быть в системе рук и взять те же gcc и binutils и создать собственный компилятор и кросс-компилятор, и посмотреть, получают ли вы одни и те же результаты, компилируя один и тот же тестовый код. Затем повторите кросс-компилятор на системе без рычага. –

ответ

1

В общем случае нет, поскольку компилятор должен выводить один и тот же машинный код для данной архитектуры независимо от архитектуры, на которой работает компилятор.

+0

Являются ли оптимизации, O1, O2 и O3 одинаковыми для разных компиляторов на разных архитектурах? – littleK

+0

Я бы так и ожидал. – Jesse

+1

Это зависит от оптимизаций, которые выполняются независимо от цели, но если они применяются к бэкэнд или являются целевыми, то, конечно, они будут варьироваться от одной цели к другой. Что касается кросс-компилятора vs native для одной и той же цели, можно было бы ожидать, что они дадут те же результаты. –

Смежные вопросы