Mi chiedevo cosa penseresti di utilizzare i risultati dei test di Chrome di jsperf.com come benchmark per le prestazioni di node.js poiché utilizzano entrambi il motore V8.I risultati di jsPerf.com Chrome sono affidabili per il benchmark node.js?
risposta
È possibile utilizzare invece Benchmark.js. È ciò che alimenta jsPerf e funziona anche in Node.js.
Penso che si debbano considerare le diverse versioni di v8, che sono usate da chrome/ium e node.js.
Ottenere la versione del v8 della vostra installazione nodo corrente:
npm --versions
elenco delle versioni dell'ecosistema nodo, includono la versione di V8:weemonger @ awesomeLinuxDistro: ~ $ NPM --versions
{NPM: '2.11.3',
http_parser: '2.3',
moduli: '14',
nodo: '0.12.7', openssl: '1.0.1p',
uv: '1.6.1',
v8: '3.28.71.19',
zlib: '1.2.8'}versione GET del v8 nel tuo attuale cromo/cromo: Tipo
chrome://version/
nella barra degli indirizzi:cromo: 38.0.2092.0 (Entwickler-costruire 282.911)
Betriebssystem: di Windows (non così impressionante OS)
Blink: 537,36 (@ 178012)
JavaScript: V8 3.28.21
Flash: 20,0,0,235
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537,36 (KHTML, come Gecko) Chrome/38.0.2092.0 Safari/537.36
...
Complimenti per bentinata per il commento.
Ma l'approccio più sicuro è quello di punto di riferimento nel proprio ambiente specifico (vedi John-David Daltons answer).
non così bello (vecchi) modi per ottenere la versione di v8
node.js
nodo -e "console.log (process.versions .v8) "
(https://stackoverflow.com/a/10264593/3346021)cromo/cromo
Vedere Ariya Hidayats Blog per determinare la versione di v8 utilizzata da chrome/ium.Per prima cosa, guarda le filiali dei rilasci del repository Chromium Subversion, facilmente navigabili allo src.chromium.org/viewvc/chrome/releases.
Ora si tratta di controllare la versione giusta. Al momento della stesura di questo documento, il mio Google Chrome dice che è alla versione 17.0.963.46.
Durante la visualizzazione del file 17.0.963.46/DEPS (utilizzato da Gyp, il sistema di generazione), troverete il collegamento alla versione corretta di V8, vale a dire v8.googlecode.com/svn/branches/3.7 revisione 10521.
Questo può essere un riferimento incrociato nel repository V8: branches/3.7 & start = 10521.
ho creato uno strumento che mi aiuta a prendere e le prove eseguite con jsperf.com: https://github.com/OrKoN/jsperf
Ad esempio:
jsperf get replace-vs-split-join-vs-replaceall 67
jsperf run replace-vs-split-join-vs-replaceall 67
67 è il numero di revisione qui. Il risultato è simile a questo:
Utilizzando chrome: // versione/grandi opere troppo! :) – bentinata