cbor-js
cbor-js copied to clipboard
Optimize byte array encoding
Copy the entire byte array instead of iterating over one byte at a time. This makes CBOR much much faster at encoding messages with large binary blobs.
Benchmarking on this data, a ROS2 sensor_msgs/Image of 640x480 RGB:
var benchmarkData = {
header: {
stamp: {
sec: 1,
nanosec: 1e8
},
frame_id: ""
},
height: 480,
width: 640,
encoding: "RGB",
is_bigendian: 0,
step: 640,
data: Uint8Array.from(Array.from({length: 640 * 480 * 3}, () => 128))
};
master
CBOR encode: 20.234ms
fast_byte_array_encoding
CBOR encode: 1.288ms