Tried your approach, I have built my project statically against protobuf-lite library (Release with the relevant compilation and linkage flags) and reached a 7MB solution. I wonder how you reached 135KB, thoughts? Is there anything else I should do?
Thanks, Roy. On Fri, Dec 7, 2018 at 2:51 AM Adam Cozzette <[email protected]> wrote: > OK, you might want to ask on the gRPC mailing list why streams can't be > used with the lite runtime. Maybe there is a plan to eventually add support > for that, especially since it's common for mobile apps to use lite protos. > > On Thu, Dec 6, 2018 at 7:01 AM Roy Barda <[email protected]> wrote: > >> Yes, according to current gRPC implementation, stream can't be used with >> LITE_RUNTIME configuration in the .proto file? >> >> Thanks, >> Roy. >> >> On Tue, Dec 4, 2018 at 7:19 PM Adam Cozzette <[email protected]> >> wrote: >> >>> For one Android binary I worked on recently, the protobuf runtime used >>> about 135 KB of space. This was for an ARM build, and I imagine the amount >>> could vary quite a bit depending on the platform and what runtime code you >>> end up depending on. >>> >>> I'm not familiar with that gRPC issue, so you may want to ask the gRPC >>> folks about that. Does the "stream" modifier prevent you from >>> setting optimize_for = LITE_RUNTIME in the .proto file? >>> >>> On Mon, Dec 3, 2018 at 11:05 PM Roy Barda <[email protected]> wrote: >>> >>>> Thank you Adam for the detailed suggestion. >>>> >>>> 1. Can you please let me know what was the addition in KB/MB of >>>> protobuf usage when you linked it statically to your Android code? >>>> 2. Using libprotobuf-lite blocks me from using the "stream" modifier >>>> (streaming feature) in gRPC, anyway to work around it? >>>> >>>> Appreciate your help, >>>> Roy. >>>> >>>> On Tuesday, December 4, 2018 at 5:51:57 AM UTC+2, Adam Cozzette wrote: >>>>> >>>>> Do you plan to link statically or dynamically against the protobuf >>>>> library? If you can link against it statically, I think you may find that >>>>> the linker is able to remove a lot of unused code. For Android (which is >>>>> an >>>>> environment where we care a lot about code size), what we generally do is: >>>>> - Use lite protos only (i.e. set option optimize_for = LITE_RUNTIME in >>>>> every .proto file) >>>>> - Link against libprotobuf-lite and not libprotobuf >>>>> - Pass -ffunction-sections and -fdata-sections to the compiler and >>>>> -Wl,-gc-sections to the linker to maximize the linker's ability to strip >>>>> out unused code >>>>> >>>>> On Sun, Dec 2, 2018 at 10:34 PM Roy Barda <[email protected]> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I have build protobuf on my Ubuntu environment and saw that the >>>>>> libraries size are extremely big. >>>>>> >>>>>> 28 MB for libprotobuf. >>>>>> 4 MB for libprotobuf-lite >>>>>> >>>>>> I'm aware of nanopb project but I need to use gRPC with protobuf and >>>>>> there is no good, working and maintained solution for nanopb. >>>>>> >>>>>> I followed the regular build process when I built protobuf (with no >>>>>> special configuration) >>>>>> >>>>>> Is there any way to reduce the protobuf library footprint? We are >>>>>> looking for a 1MB solution. >>>>>> >>>>>> Thanks, >>>>>> >>>>>> Roy. >>>>>> >>>>>> -- >>>>>> 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 [email protected]. >>>>>> To post to this group, send email to [email protected]. >>>>>> Visit this group at https://groups.google.com/group/protobuf. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> 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 [email protected]. >>>> To post to this group, send email to [email protected]. >>>> Visit this group at https://groups.google.com/group/protobuf. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
