@@ -95,6 +95,16 @@ JSON can be *slow*. E.g., 20 MB/s.
9595| AMD Zen 5 | 2024 | 6 | $4 \times 512$ | 🥇🥇🥇 |
9696
9797
98+
99+ ---
100+
101+ # simdjson: Parsing design
102+
103+ - First scan identifies the structural characters, start of all strings at about 10 GB/s using SIMD instructions.
104+ - Validates Unicode (UTF-8) at 30 GB/s.
105+ - Rest of parsing relies on index.
106+ - Allows fast skipping.
107+
98108---
99109
100110
@@ -112,6 +122,10 @@ The simdjson library is found in...
112122- Node.js
113123- ClickHouse
114124- Velox
125+ - Milvus
126+ - QuestDB
127+ - StarRocks
128+ - ...
115129
116130<img src =" images/nodejs.jpg " width =" 20% " >
117131
@@ -586,6 +600,18 @@ You might think "automatic = slow", but with simdjson + reflection:
586600
587601The generated code is often * faster* than hand-written code!
588602
603+
604+ ---
605+
606+ # On-Demand: parse only what you need
607+
608+ ``` cpp
609+ auto car = doc[" Jean-Claude" ].get<Car>()
610+ ```
611+
612+ - Seeks ` ""Jean-Claude" ` with index, and then parses directly to ` Car ` .
613+ - No intermediate, no extra parsing
614+
589615---
590616
591617# Real-World Benefits
@@ -997,6 +1023,7 @@ for (char c : str) {
9971023}
9981024```
9991025
1026+ <<<<<<< HEAD
10001027** SIMD (16 bytes at once):**
10011028``` cpp
10021029__m128i chunk = load_16_bytes(str);
@@ -1134,6 +1161,10 @@ simdjson: 14.5 seconds ⭐
11341161
113511624 . ** Every Optimization Matters**
11361163 - Small gains compound into huge improvements
1164+ =======
1165+
1166+
1167+ >>>>>>> 49da663992d387f96e55a696cd7203fb469b370a
11371168
11381169---
11391170
0 commit comments