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
[ Parent
| on HN ]
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.