<script src="https://unpkg.com/msgpackr@1.5.5/dist/index.min.js"></script>
var stringData = {"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{"para":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML"]},"GlossSee":"markup"}}}}};
var numberData = [
[1, 2, 3, 4, -1, true, null],
[3, 6, 5, 4, 1, false, 7],
[3, 2, 8, 1, 0, true, 0],
[10, 11, 12, 13, 14, false, true],
[15, 16, 17, 18, 19, true, null],
[20, 21, 22, 23, 24, false, 7],
[25, 26, 27, 28, 29, true, 0],
100, 200, 300,
[
[1, 0, 0, 0, 0],
[0, 1, 0, 0, 0],
[0, 0, 1, 0, 0],
[0, 0, 0, 1, 0],
[0, 0, 0, 0, 1]
]
];
var jsonEncodedStrings = JSON.stringify(stringData),
jsonEncodedNumbers = JSON.stringify(numberData),
msgpackEncodedStrings = msgpackr.pack(stringData),
msgpackEncodedNumbers = msgpackr.pack(numberData);
var result = msgpackr.pack(stringData);
var result = JSON.stringify(stringData);
var result = msgpackr.pack(numberData);
var result = JSON.stringify(numberData);
--enable-precise-memory-info
flag.
Test case name | Result |
---|---|
MsgPack Strings Encode | |
JSON Strings Encode | |
MsgPack Numbers Encode | |
JSON Numbers Encode |
Test name | Executions per second |
---|---|
MsgPack Strings Encode | 419177.7 Ops/sec |
JSON Strings Encode | 1163822.1 Ops/sec |
MsgPack Numbers Encode | 765251.1 Ops/sec |
JSON Numbers Encode | 757974.5 Ops/sec |
Let's break down what's being tested in the provided benchmark.
Overview
The benchmark compares the performance of two encoding formats: MessagePack (MsgPack) and JSON. Specifically, it tests the encoding speed for both strings and numbers using these two formats.
Options being compared
JSON.stringify()
.JSON.stringify()
.msgpackr.pack()
function from the MsgPack library.msgpackr.pack()
function.Pros and Cons
Library: msgpackr
The msgpackr
library is used to encode and decode MessagePack data. It provides a simple API for converting JavaScript objects and arrays to MsgPack strings. The library also supports decoding MsgPack data back into JavaScript objects and arrays.
Special JS feature or syntax
None mentioned in the provided benchmark, but it's worth noting that MsgPack has some unique features, such as:
Other alternatives
If you're interested in exploring other encoding formats or libraries, here are a few options:
Keep in mind that each of these alternatives has its own strengths and weaknesses, and may not be suitable for all use cases.