A Protobuf schema already defines the field names and the structure, so the binary encoding doesn't repeat any of that on the wire. It just carries the data. Most teams pick Protobuf for the schema, and the smaller payload comes along with it. This page measures how much space the binary encoding saves, and the cases where it saves little.
Edit the JSON below or load an example to see the wire size change.
--
size vs JSON
Payload Input
Where the binary encoding saves its bytes
Size vs. Compression
JSON's repeated keys compress well, so gzip recovers much of what the binary encoding saves by dropping field names. Compression also costs CPU on both ends, and on small payloads the framing it adds can exceed what it saves. Measure both with your own data.
The binary encoding does best on numbers, enums, and messages that leave most fields unset. It gains the least on long strings. When you need the payload to be human-readable, Protobuf messages serialize to JSON too. ProtoJSON is part of the specification, so the same schema and the same generated types produce either encoding.
Performance in Practice
Parse cost depends on the language and the library. In C++, Go, and Java, the binary encoding can parse much faster than JSON. In JavaScript and Python the gap narrows, since the data still has to cross into the runtime either way. Published benchmarks are a starting point; measure your own services before making design decisions on them.
A few write-ups measure that difference in practice:
Auth0 Engineering
Classic comparison of binary vs text overhead in real-world API requests.
Official gRPC Benchmarks
Throughput and latency metrics for Protobuf-over-HTTP/2 across various languages.
Atlassian Engineering
A case study on cutting p99 latency by 20% and CPU usage by 75% with Protobuf.
hyperpb
A dynamic parser for Go that works from descriptors instead of generated code, benchmarked against the standard runtime.
Next
Binary
How the wire format works, field by field. Tags, varints, length prefixes, and how each type is laid out in bytes.