Refresher on containers, algorithms and performance
Standard C++ library and third-party frameworks offer a rich selection of containers with diverse functionality covering numerous use cases. Performance of those containers is defined not only by the complexity of algorithms in structures used to store and access data but significantly affected by underlying memory layout and allocation patterns. Understanding of these details is crucial for finding proper data handling design. More so, the introduction of the parallel execution policy encourages us to reconsider the abilities of some algorithms and containers.
In the talk, the topic of C++ container efficiency will be revisited and considerations on applicable usage patterns will be presented. The presentation will start with a brief outline of essential characteristics of algorithms and data structures and then will shift to the overview of practical performance of STL and third-party containers in typical scenarios and under various conditions. Situations where non-standard substitutions and extensions have advantages over standard containers will be highlighted and scenarios where a combination of various types of containers and external algorithms can effectively complement each other to increase overall performance will be analyzed.
Vladimir is a software engineer with more than 17 years of experience applying C++ for development of complex software in areas like distributed systems and networking with focus on performance and reliability. Before his recent switch to Intel he was for more than 6 years part of the effort to bring modern C++ into automotive embedded software development.