+1, тест пока ни о чемnordicdynoOctober 11 2011, 15:03:48 UTC
в json.read, например, вообще никакого смысла нет, если нет цели тестить IO, но его надо тестить совсем не так all - тоже непонятно для чего измеряемая величина
Re: +1, тест пока ни о чемnordicdynoOctober 11 2011, 15:18:20 UTC
а по теме, похоже в JSON::XS для Perl написан наиболее более быстрый C-парзер (почему, это надо смотреть код) и js-конструкция messages.map(function (msg){ не очень эффективная (или не такая эффективная, как map в Perl - предположу, что из-за отсутствия каллбеков в Perl в этом месте теста)
Ещё обнаружилось что Node странно работает с массивами. Такой код выделяет для своей работы около 100Мб, а всего лишь используется одноэлементный массив.
function fibonacci(n) { if (n[0] < 2) return [1]; else return fibonacci([n[0]-2]) + fibonacci([n[0]-1]); }
var start = +new Date(); fibonacci([35]) var end = +new Date(); var diff = end - start; console.log(diff);
Comments 19
Reply
Reply
не впечатляет :)
Reply
Reply
про бенчмарки хорошая презентация.
Вкратце, нужно вначале греть свою VM, потом делать много повторов (100 - это мало), и таки смотреть разброс значений, чтобы отсечь случайные флуктуации
Reply
all - тоже непонятно для чего измеряемая величина
Какие версии perl/php/node+v8?
Reply
Reply
Reply
This is perl 5, version 12, subversion 3 (v5.12.3) built for darwin-thread-multi-2level
$ php --version
PHP 5.3.6 with Suhosin-Patch (cli) (built: Jun 16 2011 22:26:57)
$ node --version
v0.4.11
Reply
perl: 4,9 Мб
php: 11,9 Мб
node: 17,1 Мб
Всё запускалось на MacBook Air 1,4 GHz Intel Core 2 Duo
Reply
Reply
Reply
Такой код выделяет для своей работы около 100Мб, а всего лишь используется одноэлементный массив.
function fibonacci(n) {
if (n[0] < 2)
return [1];
else
return fibonacci([n[0]-2]) + fibonacci([n[0]-1]);
}
var start = +new Date();
fibonacci([35])
var end = +new Date();
var diff = end - start;
console.log(diff);
Reply
string
Reply
Leave a comment