60 lines
1.7 KiB
JavaScript
60 lines
1.7 KiB
JavaScript
/* eslint-disable no-console */
|
|
import Pool from './pool/pool.js'
|
|
import fetch from './_fetch.js'
|
|
|
|
// const BASELINE = 92 //node 12, 2017 macbook
|
|
const BASELINE = 67 //node 12, 2020 mac mini
|
|
|
|
if (!process.version.match(/^v16\./)) {
|
|
console.warn('Warn: Expecting node v16.x - got ' + process.version)
|
|
}
|
|
|
|
const docs = [
|
|
'nlp-corpus-1.json',
|
|
'nlp-corpus-2.json',
|
|
'nlp-corpus-3.json',
|
|
'nlp-corpus-4.json',
|
|
'nlp-corpus-5.json',
|
|
'nlp-corpus-6.json',
|
|
'nlp-corpus-7.json',
|
|
'nlp-corpus-8.json',
|
|
'nlp-corpus-9.json',
|
|
'nlp-corpus-10.json',
|
|
]
|
|
|
|
const fetchAll = function (urls) {
|
|
return Promise.all(urls.map(u => fetch(u))).then(res => res.map(texts => texts.join('\n')))
|
|
}
|
|
|
|
const growth = (baseline, current) => {
|
|
let percent = (current / baseline) * 100
|
|
percent = 100 - Math.round(percent)
|
|
percent = percent * -1
|
|
if (percent > 5) {
|
|
percent = '\x1b[31m' + percent + '% slower\x1b[0m'
|
|
} else if (percent < -5) {
|
|
percent = '\x1b[32m' + Math.abs(percent) + '% faster\x1b[0m'
|
|
}
|
|
return percent
|
|
}
|
|
|
|
; (async () => {
|
|
const p = new Pool()
|
|
const texts = await fetchAll(docs.map(file => `https://unpkg.com/nlp-corpus@3.3.0/builds/${file}`))
|
|
console.log(`\n\n running ${texts.length} texts on ${p.count()} workers`)
|
|
const nums = []
|
|
for (let i = 0; i < texts.length; i += 1) {
|
|
console.log(` text #${i + 1} - 🕰`)
|
|
const num = await p.do(texts[i])
|
|
nums.push(num)
|
|
}
|
|
let sum = nums.reduce((h, n) => h + n, 0)
|
|
sum = Math.round(sum * 10) / 10
|
|
console.log('\n\n', sum, ' total')
|
|
// console.log(' +/- ', diff(sum), '% ')
|
|
console.log(' +/- ', growth(BASELINE, sum))
|
|
p.close()
|
|
})()
|
|
|
|
// console.log(growth(100, 110))
|