AwesomePerfCpp

Performance guides

A curated collection of performance optimization resources and tutorials for C/C++ software developers

A curated list of awesome C/C++ performance optimization resources: talks, articles, books, libraries, tools, sites, blogs. Inspired by awesome.

GitHub

2k stars
200 watching
255 forks
Language: CSS
last commit: about 2 years ago
Linked from 2 awesome lists


Talks

Andrei Alexandrescu, Writing Quick Code in C++, Quickly Going Native 2013 -
Stephan T. Lavavej, rand() Considered Harmful Going Native 2013 -
Sean Parent, C++ Seasoning Going Native 2013 -
Scott Meyers: Cpu Caches and Why You Care code::dive conference 2014 ( )
Andrei Alexandrescu "Optimization Tips - Mo' Hustle Mo' Problems" CppCon 2014
Mike Acton "Data-Oriented Design and C++" CppCon 2014
Chandler Carruth "Efficiency with Algorithms, Performance with Data Structures" CppCon 2014
Andrei Alexandrescu - Writing Fast Code I code::dive conference 2015 ( )
Andrei Alexandrescu - Writing Fast Code II code::dive conference 2015 ( )
Chandler Carruth, "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!" CppCon 2015
Bryce Adelstein-Lelbach “Benchmarking C++ Code" CppCon 2015
Understanding Compiler Optimization - Chandler Carruth - Opening Keynote Meeting C++ 2015
'Fastware' - Andrei Alexandrescu ACCU 2016
Timur Doumler: C++ Performance in Practice: Align, Vectorise, Cache, Jump! C++Now 2016 ( )
David Stone: Exceptional Performance C++Now 2016
Jason Turner: Practical Performance Practices C++Now 2016
Timur Doumler “Want fast C++? Know your hardware!" CppCon 2016
Jason Turner “Practical Performance Practices" CppCon 2016
Chandler Carruth “High Performance Code 201: Hybrid Data Structures" CppCon 2016
McKenney “Beyond the Issaquah Challenge: High-Performance Scalable Complex Updates" CppCon 2016
D. Dechev & D. Zhang “High Performance C++ Concurrent Transactional Data Structures" CppCon 2016
Matthew Bentley “Colonies, performance and why you should care" CppCon 2016
Christiaan Pretorius “Cache Optimized Hash Tables” CppCon 2016
Tim Haines “Improving Performance Through Compiler Switches..." CppCon 2016

Articles

Three Optimization Tips for C++ , by Andrei Alexandrescu, @Facebook Engineering
why GNU grep is fast
Hash Functions all the way down from Aras-P, and the follow up
Why do CPUs have multiple cache levels?
ETW Central by RandomASCII
Micro benchmarking libraries for C++ on Bartek's blog
How to start with Software Optimization , from Flexible Particle Experiments series, Bartek's blog
Taking advantage of cache coherence in your programs
Gallery of Processor Cache Effects, C#
How We Beat C++ STL Binary Search
C++ benchmark – std::vector VS std::list VS std::deque
Container Study
Associative-Container Performance Tests
C++ Core Guidelines, Performance section
C++ Best Practices, Performance section
That’s Not Normal–the Performance of Odd Floats
gprof, Valgrind and gperftools – an evaluation of some tools for application level CPU profiling on Linux
The Performance API (PAPI) project
Roofline Performance Model
C++ timing strategies compared (in Windows) from baremetalcode blog
Simply about complex - Data Oriented Design by example
Guide into OpenMP: Easy multithreading programming for C++
C++ Optimization Bibliography - Kurt Guntheroth's
Intel® 64 and IA-32 Architectures Optimization Reference Manual

Sites/Blogs

http://www.agner.org/optimize/blog/ [Agner`s CPU blog]( )
Agner's Software optimization resources
The ryg blog
Random ASCII
The Every Computer Performance Blog
The Supercomputing Blog
Daniel Lemire's blog
Wojciech Mula's site: 0x80.pl - articles on performance, SIMD
Bartek's programming blog

Tools / Free

AMD Code XL
Very Sleepy
Proffy
Windows Performance Toolkit - XPERF
Performance and Diagnostic Tools in Visual Studio 2015
Valgrind
TAU Performance System
Google Performance Tools (gperftools) 8,469 about 1 month ago
Linux perf tools
NVIDIA Visual Profiler
Qualcomm Snapdragon Profiler
Oracle Solaris Studio Performance Analyzer
OProfile for Linux

Tools / Paid

Intel® VTune™
Intel® Vectorization and Threading Advisor
AQtime Pro, from SmartBear
GlowCode
WonderLeak A high performance Windows heap and handle allocation profiler

Libraries

Celero micro-benchmarking library 824 about 2 months ago
Nonius library
Hayai micro benchmarking library 362 about 5 years ago ,
Google benchmark library 9,035 8 days ago

Books

PDF: optimizing C++ by Agner Fog. FREE
Optimizing C++, WikiBooks FREE

Backlinks from these awesome lists:

0