--- /dev/null
+var ProtoBuf = require("../index.js");\r
+\r
+var sample = {\r
+ id: 1,\r
+ name: "John123",\r
+ password: "helloworld"\r
+};\r
+\r
+console.log("Sample: `"+JSON.stringify(sample, null, 4));\r
+console.log("\n");\r
+\r
+var proto = " message Sample {" +\r
+ "required uint32 id = 1;" +\r
+ "required string name = 2;" +\r
+ "required string password = 3;" +\r
+ "}";\r
+\r
+var builder = ProtoBuf.loadProto(proto, "bench.proto"),\r
+ Sample = builder.build("Sample");\r
+\r
+// Compare size\r
+console.log("Encoding size");\r
+console.log("-------------");\r
+var jsonData = new Buffer(JSON.stringify(sample), "utf8"),\r
+ protoData = new Sample(sample).toBuffer();\r
+console.log("* Encoded sample size as JSON: "+jsonData.length+" bytes");\r
+console.log("* Encoded sample size as protocol buffer: "+protoData.length+" bytes");\r
+console.log("");\r
+\r
+// Compare encoding speed\r
+console.log("Encoding speed");\r
+console.log("--------------");\r
+(function() {\r
+ // Assuming that a receive buffer is used\r
+ var buf = ProtoBuf.ByteBuffer.allocate(64);\r
+ var protoSample = new Sample(sample),\r
+ n = 100000, k = (n/1000)+'k';\r
+ console.time("* ProtoBuf encode "+k);\r
+ for (var i=0; i<n; ++i)\r
+ protoSample.encode(buf, true),\r
+ buf.flip();\r
+ console.timeEnd("* ProtoBuf encode "+k);\r
+ console.time("* ProtoBuf decode "+k);\r
+ for (var i=0; i<n; ++i)\r
+ Sample.decode(buf),\r
+ buf.flip();\r
+ console.timeEnd("* ProtoBuf decode "+k);\r
+})();\r