aboutsummaryrefslogtreecommitdiffhomepage
path: root/benchmarks
diff options
context:
space:
mode:
authorGravatar Josh Haberman <jhaberman@gmail.com>2016-04-27 18:34:33 -0700
committerGravatar Josh Haberman <jhaberman@gmail.com>2016-04-27 18:34:33 -0700
commit30a2f70eb33a216c53c56f765f09aea63c0cf53b (patch)
treed57c17b4d7056668a9140412877a772a7a602b69 /benchmarks
parent2e83110230b7e91b07835e9c718a1d6fbcb8b617 (diff)
Added README describing the directory.
Diffstat (limited to 'benchmarks')
-rw-r--r--benchmarks/README.md28
-rw-r--r--benchmarks/benchmarks.proto8
2 files changed, 33 insertions, 3 deletions
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