From 30a2f70eb33a216c53c56f765f09aea63c0cf53b Mon Sep 17 00:00:00 2001 From: Josh Haberman Date: Wed, 27 Apr 2016 18:34:33 -0700 Subject: Added README describing the directory. --- benchmarks/README.md | 28 ++++++++++++++++++++++++++++ benchmarks/benchmarks.proto | 8 +++++--- 2 files changed, 33 insertions(+), 3 deletions(-) create mode 100644 benchmarks/README.md (limited to 'benchmarks') diff --git a/benchmarks/README.md b/benchmarks/README.md new file mode 100644 index 00000000..c9027805 --- /dev/null +++ b/benchmarks/README.md @@ -0,0 +1,28 @@ + +# Protocol Buffers Benchmarks + +This directory contains benchmarking schemas and data sets that you +can use to test a variety of performance scenarios against your +protobuf language runtime. + +The schema for the datasets is described in `benchmarks.proto`. + +Generate the data sets like so: + +``` +$ make +$ ./generate-datasets +Wrote dataset: dataset.google_message1_proto3.pb +Wrote dataset: dataset.google_message1_proto2.pb +Wrote dataset: dataset.google_message2.pb +$ +``` + +Each data set will be written to its own file. Benchmarks will +likely want to run several benchmarks against each data set (parse, +serialize, possibly JSON, possibly using different APIs, etc). + +We would like to add more data sets. In general we will favor data sets +that make the overall suite diverse without being too large or having +too many similar tests. Ideally everyone can run through the entire +suite without the test run getting too long. diff --git a/benchmarks/benchmarks.proto b/benchmarks/benchmarks.proto index a891eb9e..5c2706df 100644 --- a/benchmarks/benchmarks.proto +++ b/benchmarks/benchmarks.proto @@ -38,10 +38,12 @@ message BenchmarkDataset { string name = 1; // Fully-qualified name of the protobuf message for this dataset. - // It will be one of the messages defined benchmark_messages.proto. + // It will be one of the messages defined benchmark_messages_proto2.proto + // or benchmark_messages_proto3.proto. + // // Implementations that do not support reflection can implement this with - // an explicit "if/else" chain that lists every possible message defined - // in this file. + // an explicit "if/else" chain that lists every known message defined + // in those files. string message_name = 2; // The payload(s) for this dataset. They should be parsed or serialized -- cgit v1.2.3