/thirdparty/breakpad/third_party/protobuf/protobuf/benchmarks/readme.txt
Plain Text | 50 lines | 37 code | 13 blank | 0 comment | 0 complexity | e994988f4a7e8d74c2c88f68e404c305 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-3-Clause, GPL-3.0, GPL-2.0
- 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.