Skip to content

Commit e0702f4

Browse files
merging with master
2 parents 8f1ee34 + 49da663 commit e0702f4

File tree

4 files changed

+1333
-0
lines changed

4 files changed

+1333
-0
lines changed

cppcon2025/cppcon_2025_slides.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

587601
The 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

11351162
4. **Every Optimization Matters**
11361163
- Small gains compound into huge improvements
1164+
=======
1165+
1166+
1167+
>>>>>>> 49da663992d387f96e55a696cd7203fb469b370a
11371168
11381169
---
11391170

0 commit comments

Comments
 (0)