I'll try to get to this by the end of the week.

On Tue, Jul 28, 2009 at 9:50 PM, Kenton Varda<ken...@google.com> wrote:
> I just committed the new "lite mode" refactoring for C++ and Java to SVN.
> To use the new feature, add this line to your .proto file:
>   option optimize_for = LITE_RUNTIME;
> This will cause protoc to generate code which is just as fast as with
> optimize_for = SPEED, but lacks descriptors, reflection, UnknownFieldSet,
> and features which are tied to them.  This means the code can be linked
> against a much smaller subset of the protocol buffers runtime library and
> will not spend time at start-up building descriptors.
> Currently, the C++ Makefile will compile libprotobuf and libprotobuf-lite as
> independent, stand-alone libraries, even though the latter is a subset of
> the former.  Is this what we want?  I'm not sure.  If we make libprotobuf
> depend on libprotobuf-lite, then users who want the full library will have
> to specify *both* when linking their own apps, unless we provide a
> "protobuf-config" script or something like that.  Complicating things
> further, if you app does not use extensions, then extension_set.cc can be
> removed from the lite library to make it even smaller, but having three
> separate libraries just seems excessive!
> For Java, I have not yet updated the Maven POM to separate the libraries.
>  I'm not sure how -- Greg, can you work on this?  "Lite" messages need only
> the following classes:
>   AbstractMessageLite.java
>   ByteString.java
>   CodedInputStream.java
>   CodedOutputStream.java
>   ExtensionRegistryLite.java
>   FieldSet.java
>   GeneratedMessageLite.java
>   InvalidProtocolBufferException.java
>   Internal.java
>   MessageLite.java
>   UninitializedMessageException.java
>   WireFormat.java
> Numbers
> C++, as measured by the "size" command on Linux:
>   libprotobuf.so: 948k
>   libprotobuf-lite.so: 148k
>   libprotobuf-lite.so with extension_set.cc removed: 91k
> Java, measured by totalling the sizes of the .class files:
>   full library:  904k
>   lite library:  120k
> I suspect we can further reduce some of these numbers with some more work.
>  For instance, an extension-less Java lite library might be as much as 50k
> smaller, though will require a bit more work than simply yanking some
> classes.



-- 
Greg Kick
Data Liberation & Feedburner
Sent from Chicago, IL, United States

--~--~---------~--~----~------------~-------~--~----~
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