Hi guys,
I'm playing around with protocol buffers for a project at work and I'm
coming across a possibly weird problem. I have the following setup in
my main():
std::cerr << "creating file" << std::endl;
int fd = open("blah.repo", O_WRONLY, O_CREAT);
if ( fd == -1 ) {
std::cerr << "ERROR: " << errno << " " << strerror(errno) <<
std::endl;
return 1;
}
ZeroCopyOutputStream* raw_output = new FileOutputStream(fd);
GzipOutputStream* gzip_output = new GzipOutputStream(raw_output,
GzipOutputStream::ZLIB);
CodedOutputStream* coded_output = new CodedOutputStream
(gzip_output);
// CodedOutputStream* coded_output = new CodedOutputStream
(raw_output);
This version takes, say, 8 seconds to create and serialize 100k simple
messages. If I flip it to not use the GzipOutputStream, it takes
roughly 1 second. Using gzip(1) to compress the resulting file takes
less than half a second.
Is there an option I need to be setting to bring it up to parity with
the command-line program or could there be a bug in GzipOutputStream?
For what it's worth, GzipInputStream is roughly on parity with a raw
CodedOutputStream.
Thanks,
Pete
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---