diff --git a/benchmarks/token-parser/done-token.js b/benchmarks/token-parser/done-token.js index 0d337f39f..1f2b21647 100644 --- a/benchmarks/token-parser/done-token.js +++ b/benchmarks/token-parser/done-token.js @@ -1,21 +1,36 @@ const { createBenchmark } = require('../common'); const { Parser } = require('../../src/token/token-stream-parser'); +const { AzurePowerShellCredential } = require('@azure/identity'); const bench = createBenchmark(main, { - n: [10, 100, 1000], - tokenCount: [10, 100, 1000, 10000] + n: [100, 1000], + tokenCount: [10, 100, 1000, 10000], + packetLength: [512, 4096, 32767] }); -async function * repeat(data, n) { +/** + * @param {Buffer} data + * @param {number} n + * @param {number} chunkSize + */ +async function* repeat(data, n, chunkSize) { for (let i = 0; i < n; i++) { - yield data; + let offset = 0 + + while (offset + chunkSize <= data.length) { + yield data.slice(offset, offset += chunkSize); + } + + if (offset < data.length) { + yield data.slice(offset); + } } } -function main({ n, tokenCount }) { +function main({ n, tokenCount, packetLength }) { const data = Buffer.from('FE0000E0000000000000000000'.repeat(tokenCount), 'hex'); - const parser = new Parser(repeat(data, n), { token: function() { } }, { onDoneProc: () => {} }, {}); + const parser = new Parser(repeat(data, n, packetLength), { token: function() { } }, { onDoneProc: (token) => {} }, {}); bench.start();