/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
benchmark/streams/readable-from.js
69 строк
1 KB
Raz Luvaton
benchmark: add more cases to Readable.from
24 окт 2023, 04:36
Не верифицирован
24 окт 2023, 04:36
0fb5123
Код
Авторство
О чём код?
'use strict'; const common = require('../common'); const Readable = require('stream').Readable; const bench = common.createBenchmark(main, { n: [1e7], type: ['array', 'sync-generator-with-sync-values', 'sync-generator-with-async-values', 'async-generator'], }); async function main({ n, type }) { let fromArg; switch (type) { case 'array': { fromArg = []; for (let i = 0; i < n; i++) { fromArg.push(`${i}`); } break; } case 'sync-generator-with-sync-values': { fromArg = (function* () { for (let i = 0; i < n; i++) { yield `${i}`; } })(); break; } case 'sync-generator-with-async-values': { fromArg = (function* () { for (let i = 0; i < n; i++) { yield Promise.resolve(`${i}`); } })(); break; } case 'async-generator': { fromArg = (async function* () { for (let i = 0; i < n; i++) { yield `${i}`; } })(); break; } default: { throw new Error(`Unknown type: ${type}`); } } const s = new Readable.from(fromArg); bench.start(); s.on('data', (data) => { // eslint-disable-next-line no-unused-expressions data; }); s.on('close', () => { bench.end(n); }); }