'use strict'; const { bench } = require('node:bench'); const path = require('node:path'); const methods = ['offset', 'slice']; const sizes = [16, 512, 4096, 16386]; const n = 1e6; const name = path.join('buffers', 'buffer-compare-offset.js'); function compareUsingSlice(b0, b1, len, iterations) { for (let i = 0; i < iterations; i++) Buffer.compare(b0.slice(1, len), b1.slice(1, len)); } function compareUsingOffset(b0, b1, len, iterations) { for (let i = 0; i < iterations; i++) b0.compare(b1, 1, len, 1, len); } for (const method of methods) { for (const size of sizes) { const compare = method === 'slice' ? compareUsingSlice : compareUsingOffset; bench(name, { params: { method, n, size }, }, (b) => { b.start(); compare(Buffer.alloc(size, 'a'), Buffer.alloc(size, 'b'), size >> 1, n); b.end(n); }); } }