Коды C++ и Haskell различаются по времени выполнения на разных машинах.C++

Программы на C++. Форум разработчиков
Anonymous
Коды C++ и Haskell различаются по времени выполнения на разных машинах.

Сообщение Anonymous »

Я хочу спросить вас, чем может быть вызвана такая разница. Если я скомпилирую следующие программы и запущу ОДИН ЖЕ БИНАРНЫЙ файл - на некоторых платформах результат, полученный из кода C++, будет намного быстрее, чем код Haskell, на других ситуация противоположная.

Кроме того, существует большая разница в производительности финальных двоичных файлов в зависимости от платформы, на которой они были созданы. (Каждая платформа использует одни и те же флаги и одни и те же версии LVM и clang)

Коды оптимизированы и должны работать с одинаковой производительностью - см.: Может ли Haskell оптимизировать функцию, вызывающую так же, как это делает Clang/GCC?

Я хочу спросить вас, как это возможно.
Код C++:

#include
#include

int b(const int x){
return x+5;
}

int c(const int x){
return b(x)+1;
}

int d(const int x){
return b(x)-1;
}

int a(const int x){
return c(x) + d(x);
}

int main(int argc, char* argv[]){
printf("Starting...\n");
long int iternum = atol(argv[1]);
long long int out = 0;
for(long int i=1; i Int
b x = x + 5
c x = b x + 1
d x = b x - 1
a x = c x + d x
main = do
putStrLn "Starting..."
args

Подробнее здесь: https://stackoverflow.com/questions/174 ... t-machines

Вернуться в «C++»