Index: third_party/protobuf/benchmarks/readme.txt |
diff --git a/third_party/protobuf/benchmarks/readme.txt b/third_party/protobuf/benchmarks/readme.txt |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2c836d0a1cfb2d6adaf19e7dec369cd749c53849 |
--- /dev/null |
+++ b/third_party/protobuf/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. |