blob: b08b8bc09cabadf3fb5dff17fc223cac206376ed [file] [log] [blame] [edit]
Contents
--------
This folder contains three kinds of file:
- Code, such as ProtoBench.java, to build the benchmarking framework.
- Protocol buffer definitions (.proto files)
- Sample data files
If we end up with a lot of different benchmarks it may be worth
separating these out info different directories, but while there are
so few they might as well all be together.
Running a benchmark (Java)
--------------------------
1) Build protoc and the Java protocol buffer library. The examples
below assume a jar file (protobuf.jar) has been built and copied
into this directory.
2) Build ProtoBench:
$ javac -d tmp -cp protobuf.jar ProtoBench.java
3) Generate code for the relevant benchmark protocol buffer, e.g.
$ protoc --java_out=tmp google_size.proto
4) Build the generated code, e.g.
$ javac -d tmp -cp protobuf.jar tmp/benchmarks/*.java
5) Run the test. Arguments are given in pairs - the first argument
is the descriptor type; the second is the filename. For example:
$ java -cp tmp:protobuf.jar com.google.protocolbuffers.ProtoBench \
'benchmarks.GoogleSize$SizeMessage1' google_message1.dat \
'benchmarks.GoogleSize$SizeMessage2' google_message2.dat
6) Wait! Each test runs for around 30 seconds, and there are 8 tests
per class/data combination. The above command would therefore take
about 8 minutes to run.
Benchmarks available
--------------------
From Google:
google_size.proto,
messages google_message1.dat and google_message2.dat.