| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | var root = require("./GeneratedBundleCode.js");var fs = require('fs');var benchmark = require("./node_modules/benchmark");var benchmarkSuite = require("./BenchmarkSuite.js");function getNewPrototype(name) {  var message = eval("root." + name);  if (typeof(message) == "undefined") {    throw "type " + name + " is undefined";  }  return message;}var results = [];console.log("#####################################################");console.log("ProtobufJs Benchmark: ");process.argv.forEach(function(filename, index) {  if (index < 2) {    return;  }  var benchmarkDataset =      root.benchmarks.BenchmarkDataset.decode(fs.readFileSync(filename));  var messageList = [];  var totalBytes = 0;  benchmarkDataset.payload.forEach(function(onePayload) {    var message = getNewPrototype(benchmarkDataset.messageName);    messageList.push(message.decode(onePayload));    totalBytes += onePayload.length;  });    var senarios = benchmarkSuite.newBenchmark(    benchmarkDataset.messageName, filename, "protobufjs");  senarios.suite  .add("protobuf.js static decoding", function() {    benchmarkDataset.payload.forEach(function(onePayload) {      var protoType = getNewPrototype(benchmarkDataset.messageName);      protoType.decode(onePayload);    });      })  .add("protobuf.js static encoding", function() {    var protoType = getNewPrototype(benchmarkDataset.messageName);    messageList.forEach(function(message) {      protoType.encode(message).finish();    });  })   .run({"Async": false});  results.push({    filename: filename,    benchmarks: {      protobufjs_decoding: senarios.benches[0] * totalBytes,      protobufjs_encoding: senarios.benches[1] * totalBytes    }  })  console.log("Throughput for decoding: "     + senarios.benches[0] * totalBytes / 1024 / 1024 + "MB/s" );  console.log("Throughput for encoding: "     + senarios.benches[1] * totalBytes / 1024 / 1024 + "MB/s" );  console.log("");});console.log("#####################################################");
 |