blob vs arraybuffers

Benchmark created on


Setup

const maxSize    = 10000000
const sampleSize = 100000;

const randomBuffer = size => {
const buffer = new ArrayBuffer(size)
const view = new Uint8Array(buffer)
for (let i = 0; i < size; i++) {
    view[i] = Math.floor(100 * Math.random() + 20)
  }
  return view;
};

Test runner

Ready to run.

Testing in
TestOps/sec
Blob
const buffer = randomBuffer(sampleSize);
const data = [buffer]
  
while (data.length * sampleSize < maxSize) {
    data.push(buffer)
 }

const result = new Blob(data)

result.slice(0, maxSize / 2)
ready
Uint8Array
const buffer = randomBuffer(sampleSize)
const result = new Uint8Array(maxSize)
let offset = 0
while (offset < maxSize) {
  result.set(buffer, offset)
  offset += buffer.byteLength;
 }

result.slice(0, maxSize / 2)
  
ready
ArrayBuffer - max random
const result = randomBuffer(maxSize)
result.slice(0, maxSize / 2)
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.