Everything you say sounds right.  If you want to know precisely what these
methods do, or how much overhead they incur, I encourage you to look at the
code in repeated_field.h -- it's not very complicated.
However, instead of trying to control all this in detail, it's usually
easiest to simply make sure that you reuse your protobuf objects.  If you
parse a message, clear it, and then parse another message into the same
object, it will reuse the memory for sub-objects and such which was
allocated the first time.  This way it's easy to make sure you aren't doing
it wrong.

On Tue, Jun 16, 2009 at 9:40 AM, RobertFach
<robert.f...@inf.tu-dresden.de>wrote:

>
> Hi,
>
> is there anybody out there who can tell me how the special methods
> like addcleared(), etc. for repeated field ptr work?
>
> I guess I can somehow improve/avoid the allocation overhead, right?
> Say, I have the following messages,
>
> message test {
>  repeated chunk = 1;
> }
>
> message chunk {
>  int value = 1;
> }
>
> The goal is to reduce the memory allocations by using pre-allocated
> objects.
>
> Assume the chunkPtr points to an already allocated object, if I use
> test.chunk().addAllocated(chunkPtr), does it just attaches the
> chunkPtr to the reaptedFieldPtr chunk object? Is there any overhead
> incured by dynamically adding the chunks to the test message? Can I
> deal with that issue by using the test.chunk().Reserve(xx) method?
>
> It seems also that I can maintain a pool of objects by using the
> addCleared() method, right? This way, future calls to test.chunk().add
> () will use an element from the pool?
>
> I was just wondering about these questions while reading the
> documentation... maybe you can just tell me if this usage pattern
> would be ok.
>
> Thx for the library and thx for the support
>
> Cheers Robert
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To post to this group, send email to protobuf@googlegroups.com
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to