

Go-codec: go: code generation to encode/decode json msgpack cbor; 2X-20X perf - ugorji
http://ugorji.net/blog/go-codecgen

======
ugorji
Summary:

go-codec supports compile-time generation of encoders and decoders for named
types, which does not incur the overhead of reflection in the typical case,
giving 2X-20X performance improvement over the idiomatic runtime introspection
mode.

Idiomatic encoding and decoding types within go typically relies on the
reflection capabilities of the go runtime. This affords flexible performance
without the need for a pre-compilation step; the go types contain all the
information needed and the runtime exposes the full types via reflection.
However, introspecting the runtime to get this information has a noticeable
overhead, which can be eliminated by a pre-compilation/code-generation step.

To eliminate that overhead, a pre-compilation step must be done to create the
code which would have been inferred at runtime. This is why Protocol Buffers,
Avro, etc have better performance than runtime-based systems. go-codec now
provides the same capabilities, with the accompanying 2X-20X performance
improvement depending on the size and structure of the named type.

See primer: [http://ugorji.net/blog/go-codec-
primer](http://ugorji.net/blog/go-codec-primer)

