~/talk

Writing high performance code in .NET

Talkat NDC Sydney 2017 · 2017-08-14..08-18· [dotnet, web-performance]
links:none on file
slides:none on file

Builds a reactor platform that hosts a billion queries in memory across hundreds to thousands of machines and uses Service Fabric, .NET and Rx. Uses PerfView, WinDbg+SOS, CLRMD to inspect dumps and realtime ETW traces. Finds a TraceSource listener causing a global lock that collapses QPS, AggregateException.ToString allocations filling logs, a blocked finalizer (zmq) leaking sockets, and a global timer lock from countless Task.Delay timers. Fixes include switching to EventSource/ETW for structured tracing, disposing native resources to avoid finalizers, cancelling timers, and swapping immutable dictionaries with Interlocked for fast config updates.

AI-written summary · about

  1. 0:00Intro
  2. 0:27Building High Scale Event Processing in Bing
  3. 1:59Performance Engineering Strategy
  4. 3:36An Arsenal of Tools
  5. 6:59The Basics of WinDbg and SOS
  6. 7:38The Basics of CLRMD
  7. 8:36The Case of the Trace
  8. 11:40Huge Exceptions, oh my!
  9. 14:49Using EventSource
  10. 23:19The Case of the Stuck Finalizer Queue
  11. 27:01Another Case of the Stuck Finalizer Queue
  12. 29:08Unobserved Task Exceptions
  13. 32:18Costly Timers
  14. 35:50Acquiring All Locks
  15. 38:34The Day all I/O stopped
  16. 43:36Using Singletons
  17. 46:48Subtle Sources of Boxing
  18. 49:55readonly, but with caution
  19. 51:53Immutable Data Structures
  20. 55:13The Lock-Free Publication Pattem
~/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.