diff options
author | jonathan.skeet <jonathan.skeet@630680e5-0e50-0410-840e-4b1c322b438d> | 2009-03-05 11:00:49 +0000 |
---|---|---|
committer | jonathan.skeet <jonathan.skeet@630680e5-0e50-0410-840e-4b1c322b438d> | 2009-03-05 11:00:49 +0000 |
commit | ff9c9e4d933bff565e2e021bdc7199f3c707aa02 (patch) | |
tree | 76374dae6e971e843a0a24b51a75d0a30bb42d02 /benchmarks/readme.txt | |
parent | 1556623fada89bb59f4019917a3e79e972d87e30 (diff) | |
download | protobuf-ff9c9e4d933bff565e2e021bdc7199f3c707aa02.tar.gz protobuf-ff9c9e4d933bff565e2e021bdc7199f3c707aa02.tar.bz2 protobuf-ff9c9e4d933bff565e2e021bdc7199f3c707aa02.zip |
Initial benchmarking.
Diffstat (limited to 'benchmarks/readme.txt')
-rw-r--r-- | benchmarks/readme.txt | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/benchmarks/readme.txt b/benchmarks/readme.txt new file mode 100644 index 00000000..2c836d0a --- /dev/null +++ b/benchmarks/readme.txt @@ -0,0 +1,50 @@ +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 google_speed.proto + +4) Build the generated code, e.g. + $ cd tmp + $ javac -d . -cp ../protobuf.jar 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 + +6) Wait! Each test runs for around 30 seconds, and there are 6 tests + per class/data combination. The above command would therefore take + about 12 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. |