~/talk

.NET Systems Programming Learned the Hard Way

Talkat NDC Oslo 2023 · 2023-05-22..05-26· [dotnet]
slides:none on file

Shows concrete wins and tradeoffs: switching to server GC doubles remote ping‑pong throughput (≈150k → ≈295k msg/s) at higher memory cost; pooling 1,024 StringBuilder instances cuts allocations from ~71MB to ~49.7MB and removes Gen‑1 GCs, increasing multithreaded throughput ≈28%; eliminating a captured delegate drops per‑op allocations from hundreds of kilobytes to ~1KB and raises throughput ~10%; using threadpool “prefer local” hints in .NET 6 raises actor throughput ~40M → ~65M msg/s; dynamic PGO pushes in‑memory actor rates ≈70M → ≈100M msg/s. Tools: BenchmarkDotNet, JetBrains profiler, PerfView.

AI-written summary · about

  1. 0:00Introduction to Akka.net
  2. 2:21Understanding garbage collection
  3. 11:33Optimizing with memory pooling
  4. 14:53Server-side GC configuration
  5. 22:39Reducing delegate allocations
  6. 28:53Avoiding empty collections
  7. 31:50Value types vs reference types
  8. 43:02Threading and context switching
  9. 54:37Data structure synchronization
  10. 58:12Dynamic profile-guided optimization
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.