Я недавно занимался некоторыми задачами для университета, в том числе с использованием Turbo Profiler (программное обеспечение неявно объявлено в задаче, к сожалению) для профилирования C и Pascal реализации численной интеграции Simpsons. Я наткнулся на очень странный случай, когда Паскаль подозрительно гораздо быстрее, чем C.Профилирование вычислений в Turbo Pascal и Turbo C
Паскаль:
i: integer, lower: real, delta_x: real;
....
(0.0000 seconds) (30 times) x:=lower+delta_x*(2.0*i-1.0);
C:
long i, double lower, double delta_x;
....
(0.0549 seconds) (30 times) double x = lower + delta_x * (2.0 * i - 1.0);
Итак, что это может быть, разница между real
и double
(и integer
и long
) или просто компилятор Pascal лучше при обработке математических операций?