Всё о web

Для чайников и не только


Сравнение скорости работы nodejs, php, python, lua, luajit, наполнение массива

Октябрь 12, 2017

А захотелось мне протестировать, на сколько отличается скорость работы этих языков программирования. В их чистом виде, по самой простейшей задаче. Для этого создал новую, чистую виртуалку, и установил lua 5.3.3, luajit 2.0.4, nodejs 8.6, python 3.5 и php7.0.

Всё, кроме ноды, ставил из стандартных репозиториев. Ставил так, как ставило бы 99% людей, без излюбонов со сборкой из сорцов.

Тест

Просто много раз пересоздаём массив и добавляем в него овер 9999 элементов. Исходники:

php

$start = microtime(true);

for($raund=0; $raund<1000; $raund++) {
  $arr = [];
  for($aLength=0; $aLength<1000000; $aLength++) {
    $arr[] = 1;
  }
}

$timeSpent = microtime(true) - $start;
echo "Time spent: " . $timeSpent . "\n";

python

import time

start = time.time()

for raund in range(0, 1000):
  myList = []
  for aLength in range(0, 1000000):
    myList.append(1)

timeSpent = time.time() - start
print("Time spent: ", timeSpent)  

nodejs

let start = new Date();

for(let raund=0; raund<1000; raund++) {
  let arr = [];
  for(let aLength=0; aLength<1000000; aLength++) {
    arr.push(1);
  }
}

let end = new Date();
let timeSpent = end - start;
console.log('Time spent:', timeSpent);

lua

local tstart = os.time() 

for raund=1,1000 do
  arr = {}
  for aLength=1,1000000 do
    table.insert(arr, 1)
  end
end

local timeSpent = os.time() - tstart
print("Time spent: " .. timeSpent .. "\n");

Результаты

Время выполнения скрипта, в секундах.

nodejs 8.6.0 php 7.0 luajit 2.0.4 python 3.5 lua 5.3.3
24.621 55.76 84 125.2 181

В итоге, nodejs наголову разбил всех. php как ни странно на втором месте, про python промолчим. А вот lua стал неожиданно тормозным, даже jit компиляция ему не помогает.



Комментарии

Оставить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *