xref: /aosp_15_r20/external/protobuf/benchmarks/js/benchmark_suite.js (revision 1b3f573f81763fcece89efc2b6a5209149e44ab8)
1*1b3f573fSAndroid Build Coastguard Workervar benchmark = require("benchmark");
2*1b3f573fSAndroid Build Coastguard Worker
3*1b3f573fSAndroid Build Coastguard Workerfunction newBenchmark(messageName, filename, language) {
4*1b3f573fSAndroid Build Coastguard Worker  var benches = [];
5*1b3f573fSAndroid Build Coastguard Worker  return {
6*1b3f573fSAndroid Build Coastguard Worker    suite: new benchmark.Suite(messageName + filename + language )
7*1b3f573fSAndroid Build Coastguard Worker      .on("add", function(event) {
8*1b3f573fSAndroid Build Coastguard Worker          benches.push(event.target);
9*1b3f573fSAndroid Build Coastguard Worker      })
10*1b3f573fSAndroid Build Coastguard Worker      .on("start", function() {
11*1b3f573fSAndroid Build Coastguard Worker          process.stdout.write(
12*1b3f573fSAndroid Build Coastguard Worker            "benchmarking message " + messageName
13*1b3f573fSAndroid Build Coastguard Worker            + " of dataset file " + filename
14*1b3f573fSAndroid Build Coastguard Worker            + "'s performance ..." + "\n\n");
15*1b3f573fSAndroid Build Coastguard Worker      })
16*1b3f573fSAndroid Build Coastguard Worker      .on("cycle", function(event) {
17*1b3f573fSAndroid Build Coastguard Worker          process.stdout.write(String(event.target) + "\n");
18*1b3f573fSAndroid Build Coastguard Worker      })
19*1b3f573fSAndroid Build Coastguard Worker      .on("complete", function() {
20*1b3f573fSAndroid Build Coastguard Worker          var getHz = function(bench) {
21*1b3f573fSAndroid Build Coastguard Worker            return 1 / (bench.stats.mean + bench.stats.moe);
22*1b3f573fSAndroid Build Coastguard Worker          }
23*1b3f573fSAndroid Build Coastguard Worker          benches.forEach(function(val, index) {
24*1b3f573fSAndroid Build Coastguard Worker            benches[index] = getHz(val);
25*1b3f573fSAndroid Build Coastguard Worker          });
26*1b3f573fSAndroid Build Coastguard Worker      }),
27*1b3f573fSAndroid Build Coastguard Worker     benches: benches
28*1b3f573fSAndroid Build Coastguard Worker  }
29*1b3f573fSAndroid Build Coastguard Worker}
30*1b3f573fSAndroid Build Coastguard Worker
31*1b3f573fSAndroid Build Coastguard Workermodule.exports = {
32*1b3f573fSAndroid Build Coastguard Worker        newBenchmark: newBenchmark
33*1b3f573fSAndroid Build Coastguard Worker}
34