Yilun Chong 1fd6c1761e Fix bugs to pass tests 8 năm trước cách đây
..
datasets 1c062a65af Sync internal benchmark changes 8 năm trước cách đây
Makefile.am 1fd6c1761e Fix bugs to pass tests 8 năm trước cách đây
ProtoBench.java 1c062a65af Sync internal benchmark changes 8 năm trước cách đây
README.md 1c062a65af Sync internal benchmark changes 8 năm trước cách đây
benchmarks.proto 247ef1f0df Addressed PR comments. 9 năm trước cách đây
cpp_benchmark.cc 1c062a65af Sync internal benchmark changes 8 năm trước cách đây
download_data.sh 1c062a65af Sync internal benchmark changes 8 năm trước cách đây
google_size.proto fb77cc9d9f More cleanup, based around searches for "Google.ProtocolBuffers" 10 năm trước cách đây

README.md

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.

To run all the benchmark dataset:

For java:

$ make java

For cpp:

$ make cpp

To run a specific dataset:

For java:

$ make java
$ ./java-benchmark $(specific generated dataset file name)

For cpp:

$ make cpp
$ ./cpp-benchmark $(specific generated dataset file name)

Each data set is in the format of benchmarks.proto:

  1. name is the benchmark dataset's name.
  2. message_name is the benchmark's message type full name (including package and message name)
  3. payload is the list of raw data.

Benchmark 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.