Contents
Talks
2013:
- Going Native 2013 - Andrei Alexandrescu, Writing Quick Code in C++, Quickly
- Going Native 2013 - Stephan T. Lavavej, rand() Considered Harmful
- Going Native 2013 - Sean Parent, C++ Seasoning
2014:
- code::dive conference 2014 Scott Meyers: Cpu Caches and Why You Care(slides)
- CppCon 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"
2015:
- code::dive conference 2015 Andrei Alexandrescu - Writing Fast Code I (slides)
- code::dive conference 2015 Andrei Alexandrescu - Writing Fast Code II (slides)
- CppCon 2015 Chandler Carruth, "Tuning C++: Benchmarks, and CPUs, and Compilers! Oh My!"
- CppCon 2015 Bryce Adelstein-Lelbach “Benchmarking C++ Code"
- Meeting C++ 2015 Understanding Compiler Optimization - Chandler Carruth - Opening Keynote
2016:
- ACCU 2016 'Fastware' - Andrei Alexandrescu
- C++Now 2016 Timur Doumler: C++ Performance in Practice: Align, Vectorise, Cache, Jump! (slides)
- C++Now 2016 David Stone: Exceptional Performance
- C++Now 2016 Jason Turner: Practical Performance Practices
- CppCon 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..."
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 here
- 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
Manuals:
Sites/Blogs
- 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)
- Linux perf tools
- NVIDIA Visual Profiler
- Qualcomm Snapdragon Profiler
- Oracle Solaris Studio Performance Analyzer
- OProfile for Linux
Paid
Libraries
- Celero micro-benchmarking library
- Nonius library
- Hayai micro benchmarking library, into article
- Google benchmark library
Books
- PDF: optimizing C++ - by Agner Fog. FREE
- Optimizing C++, WikiBooks - FREE
- The Software Optimization Cookbook: High Performance Recipes for IA-32 Platforms, 2nd Edition
- Video Game Optimization, Eric Preisz
- Optimized C++: Proven Techniques for Heightened Performance, Kurt Guntheroth
- Power and Performance: Software Analysis and Optimization, Jim Kukunas
- Systems Performance: Enterprise and the Cloud, Brendan Gregg
- Every Computer Performance Book, Bob Wescott
About
This list was started by Bartlomiej Filipek (@fenbf). If you like to help please read CONTRIBUTING.md instructions and just make a pull request to this repo.
https://github.com/fenbf/AwesomePerfCpp
------------------------------------------------------------------------------------------------------------------
rapidcheck 检查瓶颈
QuickCheck clone for C++ with the goal of being simple to use with as little boilerplate as possible.
https://github.com/emil-e/rapidcheck
A C++ micro-benchmarking framework
https://nonius.io
https://github.com/libnonius/nonius
C++ benchmarking framework
https://bruun.co/2012/02/07/easy-cpp-benchmarking
https://github.com/nickbruun/hayai