Я написал простую программу на C, Perl и Python, которая увеличивает значение переменной до 1 миллиарда. Я не ожидал, что между разными языками будет большая разница, но был очень удивлен, увидев огромную разницу. Программы просто считают до 1 миллиарда:
В c:
int main() {
int c = 0;
while (c < 1000000000) {
c++;
}
}
В Perl:
#! /usr/bin/env perl
use strict;
use warnings;
my $x = 0;
while ($x < 1000000000) {
$x++;
}
И в Python:
#!/usr/bin/env python
i = 0
while i < 1000000000:
i += 1
Время выполнения с использованием функции времени zsh / bash:
Для c: пользователь 0,78 с 0,01 с системой 98% ЦП 1,813 всего
Для perl: 29,86 с пользовательской системой 0,13 с 99% общего процессора 30,205 всего
А для Python: с 71,96 с пользовательской системой 0,3% 98% процессора 1: 13,16 всего
Мне трудно полагать, что c был в 15 раз быстрее perl и примерно в 35 раз быстрее Python. Это кажется сумасшедшим для такой простой программы? Почему большая разница?