On Tue, Jun 1, 2010 at 6:21 AM, bnh <baoneng...@gmail.com> wrote:

> I'm using a protobuf as the protocol for a distributed system.But now
> I
> have some questions about protobuf
>
> a.Whether protobuf provides the inteface for user-defined allocator
> because sometimes I find 'malloc' cost too much? I've tried TCmalloc,
> but I think I can optimize the memory allocation according to my
> application.
>

No, there are no hooks for providing an allocator. You'd need to override
malloc the way TCmalloc does if you want to use your own allocator.


>
> b.Whethere protobuf provides a way to serialize a class/object
> partially[Or do you have some ideas about it]? Because my application
> is
> very sensitive of memory usage.. Such as a class
>
> class Req{
> int userid;
> vector<PageID> pageid;
> };
>
> I want to pack 1000 pageids into the Req. But if I pack all of them,
> the
> Req's size is about 1GB [hypothetically]. But I just have 100MB
> memory,
> so I just plan to pack pageids as many as possible until the memory
> usage of Req is about 100MB. ['serialize object partially according to
> memory usage'].
>

Are you talking about producing the serialization of Req, with a large
number of PageIds, or parsing such a serialization into an in-memory object?
For the former, you can serialize in smaller pieces, and just concatenate
the serializations:
http://code.google.com/apis/protocolbuffers/docs/encoding.html#optional
For the latter, there is no way for you to tell the parser to stop parsing
when memory usage reaches a certain limit. However, you can do this yourself
if you split the serialization into multiple pieces.


>
> --
> 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
> protobuf+unsubscr...@googlegroups.com<protobuf%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
>
>

-- 
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 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to