Benchmark
unknown
javascript
5 months ago
1.2 kB
6
Indexable
const protobuf = require("protobufjs"); const { performance } = require('perf_hooks'); const root = protobuf.Root.fromJSON({ nested: { EventData: { fields: { evt: { type: "string", id: 1 }, timestamp: { type: "int64", id: 2 } } } } }); const EventData = root.lookupType("EventData"); const jsonPayload = JSON.stringify({ evt: "click", timestamp: 29310392031 }); const stringPayload = "click|29310392031"; const protobufPayload = EventData.encode(EventData.create({ evt: "click", timestamp: 29310392031 })).finish(); function parseJSON(data) { return JSON.parse(data); } function parseString(data) { const [evt, timestamp] = data.split("|"); return { evt, timestamp: Number(timestamp) }; } function parseProtobuf(data) { return EventData.decode(data); } const iterations = 1_000_000; console.time("JSON Parse"); for (let i = 0; i < iterations; i++) { parseJSON(jsonPayload); } console.timeEnd("JSON Parse"); console.time("String Split"); for (let i = 0; i < iterations; i++) { parseString(stringPayload); } console.timeEnd("String Split"); console.time("Protobuf Decode"); for (let i = 0; i < iterations; i++) { parseProtobuf(protobufPayload); } console.timeEnd("Protobuf Decode");
Editor is loading...
Leave a Comment