Well, not technically a leak because the memory eventually does get deleted 
on exit, but for my every call to ParseFromArray() I'm seeing a few hundred 
small allocations which stick around until exit, These add up when I need 
to call ParseFromArray() >100k times and cause quite a memory surge during 
runtime. I think the vast majority of protobuf users would never notice 
this problem.

google::protobuf::ShutdownProtobufLibrary() does not help. 

Is this a known problem? Is there a way to fully cleanup all temporary 
memory allocs during runtime? Am I possibly doing something wrong in my 
implementation?

debug code:

_CrtMemCheckpoint(&s1);
_CrtMemDumpAllObjectsSince(&s1); // no objects, correct

bool res = outp.ParseFromArray(outbuf, sz);

_CrtMemDumpAllObjectsSince(&s1); // hundreds of small (mainly under 100 
byte) objects that survive the destruction of outp.

TIA -Rob

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to