CppCon 2017: John Lakos “Local ('Arena') Memory Allocators (part 2 of 2)”

preview_player
Показать описание


Are allocators worth the trouble? What situations merit their use? How are they applied effectually? What’s the performance impact? This practical talk by large scale C++ expert Dr. John Lakos demonstrates that having allocators in your tool box may lead to orders of magnitude speed improvements.

The runtime implications of the physical location of allocated memory is often overlooked, even in the most performance critical code. In this talk, we will examine how the performance of systems can degrade when using `new`/`delete` and `std::allocator` . We will contrast these global allocators, which allocate memory globally for a system, with local allocators that each allocate memory for a proper subset of objects in the system. We will also demonstrate how local allocators can reduce or entirely prevent the degradation seen in systems that rely on the global allocator. Six dimensions – fragmentability, allocation density, variation, locality, utilization, and contention – will be introduced to depict the potential for performance penalties and aid the listener in determining which local allocator will offer the best performance in their subsystems. Evidence will be presented that identifying these dimensions, and selecting a local allocator based upon them, can lead to *order-of-magnitude* reductions in run time compared to systems using a global allocator.

John Lakos: Bloomberg, Software Engineering Manager

John Lakos, author of Large-Scale C++ Software Design, serves at Bloomberg LP in New York City as a senior architect and mentor for C++ Software Development world-wide. He is also an active voting member of the C++ Standards Committee’s Evolution Working Group. Previously, Dr. Lakos directed the design and development of infrastructure libraries for proprietary analytic financial applications at Bear Stearns. For 12 years prior, Dr. Lakos developed large frameworks and advanced ICCAD applications at Mentor Graphics, for which he holds multiple software patents. His academic credentials include a Ph.D. in Computer Science ('97) and an Sc.D. in Electrical Engineering ('89) from Columbia University. Dr. Lakos received his undergraduate degrees from MIT in Mathematics ('82) and Computer Science ('81). His next book, entitled Large-Scale C++—Volume I: Process and Architecture, is anticipated in 2017.


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

I'm going to be rewarching this talk multiple times and trying the tests out myself.
So amazing and succinct. Loved the cadence and the flow of the speaker.
The content was presented so beautiful.
Man would love to do a deep dive analyse of all these concepts from part 1 and part 2.

sicko
Автор

Really impressive. Hard work on experimental part as well. Pure practical education

world_entropy
Автор

2^18 bytes is 262.1 kB (kilobytes), so this is the 1st time the subsystem size exceeds the 256kB L2 cache size of the Xeon E5-2620.

theNISK
Автор

Interesting stuff. Need to try a few of these approaches.

IllumTheMessage
Автор

Good info, very useful.
As for the presentation; not bad but not good, speech is clear with decent inflections and rhythm, material is well organized, however way too much time spent on excessive repetition of trivial bits at the expense of much more important coverage, followed by frantic skipping and rushing over the last sections to beat the clock.

TheDuckofDoom.