Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

NDC Conferences

Self-Awareness in C++ Code

NDC Conferences via YouTube

Overview

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.

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

Reviews

Start your review of Self-Awareness in C++ Code

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.