CppCon 2023 Object Introspection: A Revolutionary Memory Profiler for C++ Objects -- Haslam/Sarwade

Registration is now open for CppCon 2023! The conference starts on October 1 and will be held in person in Aurora, CO. To whet your appetite for this year’s conference, we’re posting some upcoming talks that you will be able to attend this year. Here’s another CppCon future talk we hope you will enjoy – and register today for CppCon 2023!

Object Introspection: A Revolutionary Memory Profiler for C++ Objects

Wednesday, October 4 • 15:15 - 16:15

by Jonathan Haslam and Aditya Sarwade

Summary of the talk:

This talk presents a new open source technology for the Linux platform that we have developed and deployed at Meta. It enables you to observe the precise memory footprint and composition of your C++ objects in live applications including their containers (even user-defined ones!) and all dynamic memory allocations. This is achieved with no code modification or recompilation using regular DWARF debug data.

We provide two different approaches for introspecting objects, (1) a profiler that operates on a target process and (2) APIs that allow you to introspect objects directly from within your application code. We describe the core technology underlying both mechanisms followed by details of how the two approaches work and how they can be used. We will give code examples demonstrating the types of efficiency improvements made in our C++ source base and demonstrate just how easy it is to make significant efficiency improvements in your code when you have the data in hand. As this technology is open source we hope it will inspire you to leave here fired up to introspect every object that is now in sight!

Understanding the detailed memory footprint of your C++ objects in live applications allows you to develop code to more efficiently utilize memory and CPU. Existing tools and techniques in this space are extremely thin on the ground and tend to be prohibitively intrusive for real world applications in production environments and provide partial information at best. We are on a mission to elevate the observability of data to the same level as code.

https://github.com/facebookexperimental/object-introspection

Add a Comment

Comments are closed.

Comments (0)

There are currently no comments on this entry.