|
@@ -22,29 +22,25 @@ Running a benchmark (Java)
|
|
$ javac -d tmp -cp protobuf.jar ProtoBench.java
|
|
$ javac -d tmp -cp protobuf.jar ProtoBench.java
|
|
|
|
|
|
3) Generate code for the relevant benchmark protocol buffer, e.g.
|
|
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.
|
|
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
|
|
5) Run the test. Arguments are given in pairs - the first argument
|
|
is the descriptor type; the second is the filename. For example:
|
|
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
|
|
per class/data combination. The above command would therefore take
|
|
- about 12 minutes to run.
|
|
|
|
|
|
+ about 8 minutes to run.
|
|
|
|
|
|
|
|
|
|
Benchmarks available
|
|
Benchmarks available
|
|
--------------------
|
|
--------------------
|
|
|
|
|
|
From Google:
|
|
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.
|