let measure = async () => { // create some random data in a small buffer let smallbuffer = new Uint8Array(50000) crypto.getRandomValues(smallbuffer) // create a large buffer (10MB) with this random data let length = 10000000 let buffer = new Uint8Array(length) buffer.forEach((_,i) => { buffer[i] = smallbuffer[i % 50000] }) // call our function let start = performance.now() await base64_arraybuffer(buffer) let stop = performance.now() // return a measurement let seconds = (stop - start) / 1000 let megabytes = length / 1000 / 1000 return `MB per second: ${Math.floor(megabytes / seconds)}` } // example use: await measure() // returns: 'MB per second: 261'