/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v26.2.0
benchmark/buffers/buffer-iterate.js
58 строк
1 KB
Filip Skokan
buffer: move SlowBuffer to EOL
09 май 2025, 22:41
Не верифицирован
09 май 2025, 22:41
daced4a
Код
Авторство
О чём код?
'use strict'; const { Buffer } = require('buffer'); const common = require('../common.js'); const assert = require('assert'); const bench = common.createBenchmark(main, { size: [512, 4096, 16386], type: ['fast'], method: ['for', 'forOf', 'iterator'], n: [1e3], }); const methods = { 'for': benchFor, 'forOf': benchForOf, 'iterator': benchIterator, }; function main({ size, type, method, n }) { const buffer = type === 'fast' ? Buffer.alloc(size) : Buffer.allocUnsafeSlow(size).fill(0); const fn = methods[method]; bench.start(); fn(buffer, n); bench.end(n); } function benchFor(buffer, n) { for (let k = 0; k < n; k++) { for (let i = 0; i < buffer.length; i++) { assert.strictEqual(buffer[i], 0); } } } function benchForOf(buffer, n) { for (let k = 0; k < n; k++) { for (const b of buffer) { assert.strictEqual(b, 0); } } } function benchIterator(buffer, n) { for (let k = 0; k < n; k++) { const iter = buffer[Symbol.iterator](); let cur = iter.next(); while (!cur.done) { assert.strictEqual(cur.value, 0); cur = iter.next(); } } }