Files
2026-07-13 12:48:55 +08:00

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))