Up to higher level directory | |||
Name | Date | Size | |
---|---|---|---|
google_message1.dat | 21-Oct-2016 | 228 | |
google_message2.dat | 21-Oct-2016 | 82.6K | |
google_size.proto | 21-Oct-2016 | 4.6K | |
google_speed.proto | 21-Oct-2016 | 4.6K | |
ProtoBench.java | 21-Oct-2016 | 8.1K | |
readme.txt | 21-Oct-2016 | 1.7K |
1 Contents 2 -------- 3 4 This folder contains three kinds of file: 5 6 - Code, such as ProtoBench.java, to build the benchmarking framework. 7 - Protocol buffer definitions (.proto files) 8 - Sample data files 9 10 If we end up with a lot of different benchmarks it may be worth 11 separating these out info different directories, but while there are 12 so few they might as well all be together. 13 14 Running a benchmark (Java) 15 -------------------------- 16 17 1) Build protoc and the Java protocol buffer library. The examples 18 below assume a jar file (protobuf.jar) has been built and copied 19 into this directory. 20 21 2) Build ProtoBench: 22 $ javac -d tmp -cp protobuf.jar ProtoBench.java 23 24 3) Generate code for the relevant benchmark protocol buffer, e.g. 25 $ protoc --java_out=tmp google_size.proto google_speed.proto 26 27 4) Build the generated code, e.g. 28 $ cd tmp 29 $ javac -d . -cp ../protobuf.jar benchmarks/*.java 30 31 5) Run the test. Arguments are given in pairs - the first argument 32 is the descriptor type; the second is the filename. For example: 33 $ java -cp .;../protobuf.jar com.google.protocolbuffers.ProtoBench 34 benchmarks.GoogleSize$SizeMessage1 ../google_message1.dat 35 benchmarks.GoogleSpeed$SpeedMessage1 ../google_message1.dat 36 benchmarks.GoogleSize$SizeMessage2 ../google_message2.dat 37 benchmarks.GoogleSpeed$SpeedMessage2 ../google_message2.dat 38 39 6) Wait! Each test runs for around 30 seconds, and there are 6 tests 40 per class/data combination. The above command would therefore take 41 about 12 minutes to run. 42 43 44 Benchmarks available 45 -------------------- 46 47 From Google: 48 google_size.proto and google_speed.proto, messages 49 google_message1.dat and google_message2.dat. The proto files are 50 equivalent, but optimized differently. 51