В течение долгого времени я думал о С++ быстрее, чем javascript. Однако сегодня я сделал сравнительный тест script, чтобы сравнить скорость вычислений с плавающей запятой на двух языках, и результат потрясающий!
Javascript почти в 4 раза быстрее, чем С++!
Я разрешил обеим языкам выполнять одну и ту же работу на моем ноутбуке i5-430M, выполняя a = a + b
за 100000000 раз. С++ занимает около 410 мс, а javascript занимает всего около 120 мс.
Я действительно не знаю, почему javascript может работать так быстро в этом случае. Может кто-нибудь объяснить это?
Код, который я использовал для javascript (run with nodejs):
(function() {
var a = 3.1415926, b = 2.718;
var i, j, d1, d2;
for(j=0; j<10; j++) {
d1 = new Date();
for(i=0; i<100000000; i++) {
a = a + b;
}
d2 = new Date();
console.log("Time Cost:" + (d2.getTime() - d1.getTime()) + "ms");
}
console.log("a = " + a);
})();
И код для С++ (скомпилированный g++):
#include <stdio.h>
#include <ctime>
int main() {
double a = 3.1415926, b = 2.718;
int i, j;
clock_t start, end;
for(j=0; j<10; j++) {
start = clock();
for(i=0; i<100000000; i++) {
a = a + b;
}
end = clock();
printf("Time Cost: %dms\n", (end - start) * 1000 / CLOCKS_PER_SEC);
}
printf("a = %lf\n", a);
return 0;
}