Главная
Study mode:
on
1
Intro
2
Tech At Bloomberg
3
The Bloomberg Terminal
4
We care about performance
5
Memory Leaks? In 2018??
6
Memory Usage: A Case Study
7
Usual Strategies
8
Building a memory profiler
9
Where is malloc?
10
Strategy #1: Intercepting malloc using the allocator shim
11
Strategy #2: Intercepting malloc using Import Address Table redirection
12
Capturing the traceback: helper func
13
Step 3: Build a callstack / size histogram
14
Data structures
15
Gotcha #1: recursive malloc
16
Gotcha #1 fix: recursion protection
17
RAll recursion protection
18
Gotcha #2 fix: Thread-local storage
19
Instrumentation walkthrough: 2
20
Instrumentation walkthrough: example
21
Tree representation
22
Building the tree
23
Hierarchical analysis
24
Graphical analysis
25
Example 1: Alloc/Dealloc
26
Example 2: Simple leak
27
Remember our Case Study
28
Case Study: normal run (no errors)
29
Case Study: with some errors
30
Case Study: The logging?
31
Combining callstacks and instance data
32
Allocation context
33
Mixed-mode systems
Description:
Explore a comprehensive talk on developing a memory profiler for C++ code optimization and debugging. Dive into strategies for intercepting malloc, capturing tracebacks, and building callstack histograms. Learn about data structures, gotchas, and fixes in profiler development, including recursive malloc handling and thread-local storage. Examine real-world examples of memory allocation, deallocation, and leak detection. Discover how to perform hierarchical and graphical analysis of memory usage, and understand the importance of allocation context in mixed-mode systems. Gain insights from a case study of the Bloomberg Professional Service, demonstrating practical applications of memory profiling techniques in high-performance software development.

Self-Awareness in C++ Code

NDC Conferences
Add to list