/
githubmirror
/
node
Обзор
Документация
Войти
/
githubmirror
/
node
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v22.23.2
benchmark/buffers/buffer-bytelength-string.js
43 строки
1 KB
semimikoh
benchmark: fix incorrect base64 input in byteLength benchmark
24 фев 2026, 02:37
Не верифицирован
24 фев 2026, 02:37
ba8714a
Код
Авторство
О чём код?
'use strict'; const common = require('../common'); const bench = common.createBenchmark(main, { type: ['one_byte', 'two_bytes', 'three_bytes', 'four_bytes', 'latin1'], encoding: ['utf8', 'base64'], repeat: [1, 2, 16, 256], // x16 n: [4e6], }); // 16 chars each const chars = { one_byte: 'hello brendan!!!', two_bytes: 'ΰαβγδεζηθικλμνξο', three_bytes: '挰挱挲挳挴挵挶挷挸挹挺挻挼挽挾挿', four_bytes: '𠜎𠜱𠝹𠱓𠱸𠲖𠳏𠳕𠴕𠵼𠵿𠸎𠸏𠹷𠺝𠺢', latin1: 'Un homme sage est supérieur à toutes ' + 'les insultes qui peuvent lui être adressées, et la meilleure réponse est la patience et la modération.', }; function getInput(type, repeat, encoding) { const original = (repeat === 1) ? chars[type] : chars[type].repeat(repeat); if (encoding === 'base64') { return Buffer.from(original, 'utf8').toString('base64'); } return original; } function main({ n, repeat, encoding, type }) { const data = getInput(type, repeat, encoding); const expected = Buffer.byteLength(data, encoding); let changed = false; bench.start(); for (let i = 0; i < n; i++) { const actual = Buffer.byteLength(data, encoding); if (expected !== actual) { changed = true; } } bench.end(n); if (changed) { throw new Error('Result changed during iteration'); } }