Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Pack array of bitmasks (numbers) to base64
(version: 1)
Comparing performance of:
Pack vs UnPack
Created:
one year ago
by:
Registered User
Jump to the latest result
HTML Preparation code:
<!--your preparation HTML code goes here-->
Script Preparation code:
function generateBitmasks() { const bitmasks = new Set(); bitmasks.add(0); bitmasks.add(1); bitmasks.add(0xFF); // 8 bits bitmasks.add(0xFFFF); // 16 bits bitmasks.add(0xFFFFFF); // 24 bits bitmasks.add(0xFFFFFFFF); // 32 bits for (let i = 0; i < 31; i++) { bitmasks.add(1 << i); } bitmasks.add(0x12345678); bitmasks.add(0x55555555); bitmasks.add(0xAAAAAAAA); bitmasks.add(0x33333333); bitmasks.add(0xCCCCCCCC); return Array.from(bitmasks) } var bitmasks = generateBitmasks(); var packed = packBitmasks(bitmasks); function packBitmasks(bitmasks) { const buffer = new ArrayBuffer(bitmasks.length * 4); const uint32View = new Uint32Array(buffer); for (let i = 0; i < bitmasks.length; i++) { uint32View[i] = bitmasks[i]; } const uint8View = new Uint8Array(buffer); const binary = String.fromCharCode.apply(null, uint8View); return btoa(binary); } function unpackBitmasks(packed) { const binary = atob(packed); const count = binary.length >>> 2; const result = new Array(count); for (let i = 0, offset = 0; i < count; i++, offset += 4) { result[i] = ( binary.charCodeAt(offset) | (binary.charCodeAt(offset + 1) << 8) | (binary.charCodeAt(offset + 2) << 16) | (binary.charCodeAt(offset + 3) << 24) ) >>> 0; } return result; }
Tests:
Pack
packBitmasks(bitmasks)
UnPack
unpackBitmasks(packed)
Rendered benchmark preparation results:
Suite status:
<idle, ready to run>
Run tests (2)
Previous results
Fork
Test case name
Result
Pack
UnPack
Fastest:
N/A
Slowest:
N/A
Latest run results:
Run details:
(Test run date:
one year ago
)
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
Browser/OS:
Chrome 134 on Mac OS X 10.15.7
View result in a separate tab
Embed
Embed Benchmark Result
Test name
Executions per second
Pack
1121335.1 Ops/sec
UnPack
2502285.0 Ops/sec
Related benchmarks:
ArrayBuffer to base64 String
Base64 encode native func vs readAsDataURL()
Base64 encoding test: Native JS Func vs FileReader.readAsDataURL()
Base64 vs. base64
Convert bytes to binary string
array buffer to hex conversion 5 methods vs base64 2 methods
array buffer to hex conversion 6 methods vs base64 2 methods
array buffer to hex conversion 8 methods vs base64 2 methods
Pack array of bitmasks (numbers)
Comments
Confirm delete:
Do you really want to delete benchmark?