|
|
|
@ -22,29 +22,25 @@ Running a benchmark (Java) |
|
|
|
|
$ 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 google_speed.proto |
|
|
|
|
$ protoc --java_out=tmp google_size.proto |
|
|
|
|
|
|
|
|
|
4) Build the generated code, e.g. |
|
|
|
|
$ cd tmp |
|
|
|
|
$ javac -d . -cp ../protobuf.jar benchmarks/*.java |
|
|
|
|
$ 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 .;../protobuf.jar com.google.protocolbuffers.ProtoBench |
|
|
|
|
benchmarks.GoogleSize$SizeMessage1 ../google_message1.dat |
|
|
|
|
benchmarks.GoogleSpeed$SpeedMessage1 ../google_message1.dat |
|
|
|
|
benchmarks.GoogleSize$SizeMessage2 ../google_message2.dat |
|
|
|
|
benchmarks.GoogleSpeed$SpeedMessage2 ../google_message2.dat |
|
|
|
|
$ 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 6 tests |
|
|
|
|
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 12 minutes to run. |
|
|
|
|
about 8 minutes to run. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Benchmarks available |
|
|
|
|
-------------------- |
|
|
|
|
|
|
|
|
|
From Google: |
|
|
|
|
google_size.proto and google_speed.proto, messages |
|
|
|
|
google_message1.dat and google_message2.dat. The proto files are |
|
|
|
|
equivalent, but optimized differently. |
|
|
|
|
google_size.proto, |
|
|
|
|
messages google_message1.dat and google_message2.dat. |
|
|
|
|