Skip to content

Commit 064b96b

Browse files
committed
more tweaks
1 parent ae98e43 commit 064b96b

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

cppcon2025/cppcon_2025_slides.md

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ CppCon 2025
4343

4444
---
4545

46-
# JSON downside?
46+
# JSON Downside?
4747

4848
Reading and writing JSON can be *slow*. E.g., 100 MB/s to 300 MB/s.
4949

@@ -70,7 +70,7 @@ Source: Gwen (Chen) Shapira
7070

7171
---
7272

73-
# Performance
73+
# Parsing at Gigabytes per Second
7474

7575
* simdjson was the first library to break the gigabyte per second barrier
7676
* Parsing Gigabytes of JSON per Second, VLDB Journal 28 (6), 2019
@@ -91,7 +91,7 @@ Source: Gwen (Chen) Shapira
9191

9292
---
9393

94-
# Not all processors are equal
94+
# Not All Processors are Equal
9595

9696
| processor | year | arithmetic logic units | SIMD units |
9797
|-----------------|---------|---------------------------|----------------|
@@ -101,7 +101,7 @@ Source: Gwen (Chen) Shapira
101101

102102
---
103103

104-
# SIMD support in simdjson
104+
# SIMD Support in simdjson
105105

106106
* x64: SSSE3 (128-bit), AVX-2 (256-bit), AVX-512 (512-bit)
107107
* ARM NEON
@@ -111,7 +111,7 @@ Source: Gwen (Chen) Shapira
111111

112112
---
113113

114-
# simdjson: design
114+
# simdjson: Design
115115

116116
* First scan identifies the structural characters, start of all strings at about 10 GB/s using SIMD instructions.
117117
* Validates Unicode (UTF-8) at 30 GB/s.
@@ -270,14 +270,17 @@ Player deserializedPlayer = JsonSerializer.Deserialize<Player>(jsonInput, option
270270

271271
---
272272

273-
# Why can C# implementation be so elegant?
273+
# How can C# Implementation be so Elegant?
274274
It is using **reflection** to access the attributes of a struct during runtime.
275275

276276
---
277277

278278
# Rust (serde)
279279

280280
```rust
281+
#[derive(Serialize, Deserialize)] // Annotation is required
282+
pub struct player {}
283+
281284
// Rust with serde
282285
let json_str = serde_json::to_string(&player)?;
283286
let player: Player = serde_json::from_str(&json_str)?;
@@ -287,7 +290,7 @@ let player: Player = serde_json::from_str(&json_str)?;
287290

288291
---
289292

290-
# Rust reflection
293+
# Rust Reflection
291294

292295
* Rust does not have any built-in reflection capabilities.
293296
* Serde relies on annotation and macros.
@@ -297,7 +300,7 @@ let player: Player = serde_json::from_str(&json_str)?;
297300
---
298301

299302

300-
# Reflection as accessing the attributes of a struct.
303+
# Reflection as Accessing the Attributes of a Structure
301304

302305
| language | runtime reflection | compile-time reflection |
303306
|:---------|:-------------------|:------------------------|
@@ -309,7 +312,7 @@ let player: Player = serde_json::from_str(&json_str)?;
309312

310313
---
311314

312-
# Now it's our turn to have reflection!
315+
# Now it's our Turn to Have Reflection!
313316

314317
<!-- TODO: maybe add a reference to one of Herb's talks -->
315318

0 commit comments

Comments
 (0)