Hi Ceki,

Keep in mind that I still have to double check my LoggingEvent-to-protobuf converter.

Serializing the corpus with different formats:
java serialization   => 16 MB  (16108602)                           
protobuf                => 33 MB  (34385867 bytes)
protobuf + gzip      => 9.9 MB  (10354646 bytes)
protbuf + deflater   =>  12 MB  (12006206 bytes)

speed:

java serialization:    4330 ms
protobuf                   928 ms
protobuf + gzip       3146 ms 
protobuf + deflater  1883 ms

So I would choose for protobuf + deflater :  25% smaller than java serilaization and twice as fast.

Deflater means using  java.util.zip.Deflater.BEST_SPEED

regards,
Maarten


On Wed, Mar 18, 2009 at 9:49 PM, Ceki Gulcu <ceki@qos.ch> wrote:

Hello Maarten,

It's interesting to learn that protobuf is faster than plain old java serialization. Thanks.

How about the size of the stored data? How many bytes does a logging event use on average?

Maarten Bosteels wrote:
Hi,

No objections at all.

Looking at my .proto file it's indeed pretty obvious that CallerData and StackTraceElement are quite similar :-)
http://code.google.com/p/firewood/source/browse/trunk/compare-formats/src/main/java/com/googlecode/firewood/protobuf/logging.proto

I've done some benchmarking with protobuf (using the Corpus), and it seems to be at least 4 times faster than Java serialization.
Will soon post the results and the code.

regards,
Maarten


--
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
_______________________________________________
logback-dev mailing list
logback-dev@qos.ch
http://qos.ch/mailman/listinfo/logback-dev