News for hackers. Stuff that matters.
Re:A practical guide to protocol buffers in Go by minaandrawos on Saturday July 12, 2014 @03:17PM (#8025515)
Whenever you get a chance, would you care to share some of the main pain points to look out for from your experience as well as the workarounds? I haven't encountered major issues (small issues yes, major issues not yet) so far implementing protos , however my projects scales are typically not as massive as Google's. So for the sake of my quest to expand my horizons, any feedback will be greatly appreciated
Re:A practical guide to protocol buffers in Go by crawshaw on Saturday July 12, 2014 @04:22PM (#8025683)
The most important piece of advice is not proto specific: use pprof. It may sound obvious, but even though I have been using it for years, I find myself still not running it enough.

Proto decoding specific: if you're parsing a message with lots of fields, you can define a new message with just the fields you care about. I.e. if you're parsing

    message M {
      optional int32 F1 = 1;
      // ...
      optional int32 F100 = 100;
    }
but you only care about F1 and F2 in this message, define

    message SmallM {
      optional int32 F1 = 1;
      optional int32 F2 = 2;
    }
If you use SmallM to decode your messages, it will skip a lot of work filling out fields F3-F100, saving you a lot of CPU.