Skip to content

Commit 49da663

Browse files
committed
update
1 parent 69529a5 commit 49da663

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

cppcon2025/cppcon_2025_slides.md

Lines changed: 29 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
@@ -945,6 +971,9 @@ int g() {
945971
}
946972
```
947973
974+
975+
976+
948977
---
949978
950979
# Conclusion

0 commit comments

Comments
 (0)