Skip to content

Instantly share code, notes, and snippets.

@zbjornson
Created February 11, 2015 15:42
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zbjornson/58830044a3389ccc604d to your computer and use it in GitHub Desktop.
Save zbjornson/58830044a3389ccc604d to your computer and use it in GitHub Desktop.
SO 8609289
var buf1 = new Buffer(1024);
for (var i = 0; i < 1024; i++) {
buf1[i] = i
}
function toArrayBuffer(buffer) {
var ab = new ArrayBuffer(buffer.length);
var view = new Uint8Array(ab);
for (var i = 0; i < buffer.length; ++i) {
view[i] = buffer[i];
}
return ab;
}
function toArrayBufferViaReads(buffer) {
// Unsafely assumes buffer size is a multiple of 4
var sizeofBuffer = buffer.length;
var ab = new ArrayBuffer(sizeofBuffer);
var view = new Uint32Array(ab);
for (var srcI = destI = 0; srcI < sizeofBuffer; srcI += 4, destI++) {
view[destI] = buffer.readUInt32LE(srcI);
}
return ab;
}
@zbjornson
Copy link
Author

times are ms to run 15,000 times (lower is better)

> for(var tt=0;tt<20;tt++){
  console.time("bytewise");
  for(var t=0;t<15000;t++){
    toArrayBufferViaReads(buf1)
  };
  console.timeEnd("bytewise")
}
sample bytewise viaReads
1 267 473
2 234 421
3 218 421
4 234 390
5 219 437
6 234 437
7 249 426
8 219 421
9 234 422
10 223 436
11 239 422
12 255 421
13 223 423
14 250 442
15 221 406
16 236 405
17 234 453
18 234 424
19 250 421
20 234 421
mean 235.35 426.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment