JSON Is Slowing You Down — Here’s Why Tuples Win
🧩 JSON (JavaScript Object Notation)
As JavaScript developers, we love JSON [IMG 1].
It's extremely simple to understand. But JSON is nothing more than just text representing data.
That's it...just text.
When you parse it, the parser decides what structure it becomes in memory.
⚙️ After Parsing (in memory)
When parsed in JS:
  • JSON objects become plain objects, which then are then implemented much like hashmaps/dictionaries.
As I continue to increase the performance of Gextron dot com, I see myself using less and less JSON objects.
Here are some weaknesses of JSON and where tuples have an upper advantage:
⚡️ HIGH Frequency Ingest
JSON pain:
  • Every message has to be prased from text into object
  • Parsing is CPU intensive, especially a lot of strings with a lot of characters
  • Field names repeat in every record, so wasted bandwidth
Imagine doing this – "strike": 505, "delta": 0.95, "gamma": 0.03" – for 4200+ contracts for a single ticker.
Tuple win:
  • Define schema: [strike, delta, gamma]
  • Then ingest an array of fixed width tuples
  • No per-field string parsing
  • Much smaller payload → less network, less garbage collection stress
This matters even more when firing a WebSocket provider.
🥵 Hot Path Cache Read
JSON pain:
  • Pull a blob from Redis/DB
  • JSON.parse() to filter or enrich data
  • Parse does a full walk of the entire structure, even if you only need 2 fields
  • Large heap allocation = more GC pauses
Tuple wins:
  • Slice out columns you need without materializing the rest
  • Index into a field without parsing the whole record
  • Return to the client as-is or lightly transform
This matters when I'm building a full option chain that needs to be served =< 100ms
🚌 Bulk Transport
JSON pain:
  • Repetitive keys in every row
  • JSON.stringify is very expensive the bigger the object
Tuple wins:
  • Tuples are naturally tight
  • Sending a matrix of numbers/strings without field names
  • Compresses extremely well
  • Faster to serialize
Sending snapshots of chain from ingest service to cache to API is very fast
💳 Transform cost on the frontend
JSON pain:
  • Browser receives JSON → parses → still need to reshape
  • The double transform burns main thread time
Tuple wins:
  • Send already-columnar or tuple array data, the UI can render directly
  • Almost no transform. Just feed it to the store
The list could go on, but these are the main pain points that made me move away from heavy JSON use inside Gextron.
5
5 comments
Ruben Leija
5
JSON Is Slowing You Down — Here’s Why Tuples Win
JavaScript
skool.com/javascript
Chat about javascript and javascript related projects. Yes, typescript counts.
Leaderboard (30-day)
Powered by