Improving Efficiency: LinkedIn’s Transition From JSON to Protocol Buffers

Programs usually work with data in at least two different representations:

  1. In memory representation: In memory, data is kept in objects, structs, lists, arrays, hash tables, trees, and so on. These data structures are optimized for efficient access and manipulation by the CPU.
  2. Data on file and data over the network: When you want to write data to a file or send it over the network, you need to convert it as a self-contained sequence of bytes.

in-memory representation