Overview
Syllabus
Intro
Tech At Bloomberg
The Bloomberg Terminal
We care about performance
Memory Leaks? In 2018??
Memory Usage: A Case Study
Usual Strategies
Building a memory profiler
Where is malloc?
Strategy #1: Intercepting malloc using the allocator shim
Strategy #2: Intercepting malloc using Import Address Table redirection
Capturing the traceback: helper func
Step 3: Build a callstack / size histogram
Data structures
Gotcha #1: recursive malloc
Gotcha #1 fix: recursion protection
RAll recursion protection
Gotcha #2 fix: Thread-local storage
Instrumentation walkthrough: 2
Instrumentation walkthrough: example
Tree representation
Building the tree
Hierarchical analysis
Graphical analysis
Example 1: Alloc/Dealloc
Example 2: Simple leak
Remember our Case Study
Case Study: normal run (no errors)
Case Study: with some errors
Case Study: The logging?
Combining callstacks and instance data
Allocation context
Mixed-mode systems
Taught by
NDC Conferences