Image may be NSFW.
Clik here to view.
Clik here to view.

Reducing memory allocations from 7.5GB to 32KB
Table of Contents
Context of the problem
Establishing a baseline
Easy win 1
Easy win 2
Splits are never cool
Lists are not always nice
Pooling byte arrays
Goodbye StringBuilder
Skipping commas
The war between classes and structs
Goodbye StreamReader
TLDR