~/talk

A mortal's guide to making a pig run faster

Talkat NDC Sydney 2022 · 2022-10-12..10-14· [dotnet]
links:none on file
slides:none on file

Starts with a baseline: PDFPig v0.7 parsing an 838‑page PDF takes ~7.6s on .NET Core 3.1 and ~6.5s on .NET 6, then profiling with PerfView and isolating a hot GetPage method with BenchmarkDotNet and SpeedScope reveals heavy time in a transformation matrix using decimals. Replacing decimals with doubles for geometry cuts that hot path from most of the runtime to ~0.6% of its previous cost and drops the overall run to ~4.3s (≈30% faster on .NET 6); tests guard correctness.

AI-written summary · about

  1. 0:00Welcome
  2. 1:34Performance in .NET
  3. 2:57Performance principles
  4. 7:31Performance detective work
  5. 10:40PDF Pig and baseline
  6. 13:09Manual performance tests
  7. 18:47PerfView profiling intro
  8. 21:14Garbage collection stats
  9. 23:41Disk I/O bottlenecks
  10. 24:44Threading and blocking
  11. 27:12CPU-bound operations
  12. 29:39Benchmark.NET
  13. 34:37Profiling a benchmark
  14. 36:25CPU stacks in PerfView
  15. 38:31Flame graphs with SpeedScope
  16. 40:15Matrix multiplication investigation
  17. 41:18Decimal vs double performance
  18. 44:53Decimal to double conversion
  19. 47:23Applying code changes
  20. 48:31Rebaselining after changes
  21. 50:19Summary
  22. 52:05Q&A
~/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.