Сравнение языков программирования

Здравствуйте! У меня есть следующие вопросы:

Имеем код:

let result;
let i;

for (i = 0; i < 125000000; i ) {
result = i * 3 / 2;
}

Таких циклов у меня 500. Написал всё это чисто что б проверить скорость выполнения данного кода на разных языках программирования, и вот какие результаты:

PHP, C# -- полный провал

C -- 163s

C -- 150s

Node.js -- 56s (!!!!!)

Внимание, вопросы:

1. Почему C# и PHP вообще загибаются с этой задачей?

2. Как нода может быть быстрее C и C ?

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

Скомпилируйте C в релизом режиме со всеми оптимизациям. Ну и godbolt зайдите и посмотрите, во что ваш код превратится под разными компиляторами. Там циклов скорее всего даже не будет.

А вообще интерпретатор может удалять циклы, если они не делают ничего. В твоём случае первые 499 перезатирают result раз за разом. Циклы оптимизатор может сворачивать в арифметическую/геометрическую прогрессии, если это возможно. Также, все 500 циклов вообще могут быть удалены, т.к. переменная result после циклов не используется.