On Jun 22, 3:04 pm, Evan Jones <ev...@mit.edu> wrote:
> On Jun 22, 2010, at 15:35 , sheila miguez wrote:
> > I've got a servlet filter which wraps the HttpServletResponse. So, the
> > servlet response's output stream, which is wrapped in a stream from
> > the lzo library, is compressing data as it is getting written to.
> Ah, so the best case is probably message.writeTo(servletOutputStream)
> If you are writing multiple messages, you'll probably want to
> explicitly create a single CodedOutputStream to write all of them.
> If you experiment with this and find something different, I would be
> interested to know.
> Evan Joneshttp://evanjones.ca/
Evan, thatnks for the great tip about using CodedOutputStream for the
writing of protobuf into a compressible stream.
When calling a .toByteArray() method and then writing it to a
CompressionOutputStream, it takes 396,078,181 ns to compress 112,178
When I use .writeTo(...) and pass it a CompressionOutputStream as an
input, it takes only 38,226,661 ns to compress 112,178 bytes.
So its almost a 10x reduction, which is GREAT!!!
Now I'm trying to figure out how I can speed up the decompression on
the receiving side.
What I have right now is:
* Take the CompressionInputStream, convert it into a byte
* Take the resulting byte and do .parseFrom(byte)
This seems to be a faster route, then just
10,404 bytes of compressed payload takes 181,643,533 ns to decompress
and convert into a proto message
10,404 bytes of compressed payload takes only 155,264,303 ns, when
first I create a byte and then pass it into .parseFrom(byte) on
Any thoughts on how this can be (if possible at all) made even
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to proto...@googlegroups.com.
To unsubscribe from this group, send email to
For more options, visit this group at