AwesomePerfCpp 性能优化
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
AwesomePerfCpp 性能优化的更多相关文章
- 01.SQLServer性能优化之----强大的文件组----分盘存储
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 文章内容皆自己的理解,如有不足之处欢迎指正~谢谢 前天有学弟问逆天:“逆天,有没有一种方 ...
- 03.SQLServer性能优化之---存储优化系列
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 概 述:http://www.cnblogs.com/dunitian/p/60413 ...
- Web性能优化:What? Why? How?
为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...
- Web性能优化:图片优化
程序员都是懒孩子,想直接看自动优化的点:传送门 我自己的Blog:http://cabbit.me/web-image-optimization/ HTTP Archieve有个统计,图片内容已经占到 ...
- C#中那些[举手之劳]的性能优化
隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒...... 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿 ...
- JavaScript性能优化
如今主流浏览器都在比拼JavaScript引擎的执行速度,但最终都会达到一个理论极限,即无限接近编译后程序执行速度. 这种情况下决定程序速度的另一个重要因素就是代码本身. 在这里我们会分门别类的介绍J ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- C++ 应用程序性能优化
C++ 应用程序性能优化 eryar@163.com 1. Introduction 对于几何造型内核OpenCASCADE,由于会涉及到大量的数值算法,如矩阵相关计算,微积分,Newton迭代法解方 ...
- Android性能优化之利用LeakCanary检测内存泄漏及解决办法
前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...
随机推荐
- python学习之split()
定义: Python split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 语法: str.split(str="", num=st ...
- 说说Java中的资源文件的读取
最近在看spring的资源获取时发现JDK里存在几种不同方式的资源获取,因比较混乱特地总结起来帮助和我一样混乱的人理解.下面是我项目的类结构图,在 src/main/java 下有两个类 Resour ...
- CSS学习笔记(1)--浮动
总结:浮动只能在脱离文档流的当前位置向上浮动,不能像定位一样到处乱跑. 清除浮动,设置一个类.clear{clear:both;} 1.没有浮动,都独占一行: <!DOCTYPE html> ...
- 初识md5碰撞与crc32碰撞
现在是晚上23:29.写这篇文章呢,是因为早些时候我胃疼,是因为凉导致的胃疼.凉呢喝了一些热水,喝完热水胃倒是不疼了,但是由于我喝的是茶叶开水,于是就导致失眠了.想来想去这漫漫长夜也没意思,于是就决定 ...
- 大数据处理-Trie树
大数据处理--Trie树 1.1.什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被 ...
- hdu6038 Function 函数映射
/** 题目:hdu6038 Function 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6038 题意:给定一个a排列[0,n-1],一个b排列[0, ...
- DevelopmentValue
DevelopmentValue mysql为utf8为什么网页返回数据及写入mysql数据库均为乱码? eclipse运行配了maven之后,创建包也弹出这个错误,每次都弹 c语言怎么建立txt文件 ...
- RGB565 转换 BMP24
今晚有心情,就做完了BMP16(RGB565) 转换成BMP24 的小程序.其中最关键的地方是: // k,WORD类型,是RGB565 的一个点的数据(可以认为是灰度). r=(k & 0x ...
- kafka1:Kafka集群部署步骤
参考: kafka 集群--3个broker 3个zookeeper创建实战 细细品味Kafka_Kafka简介及安装_V1.3http://www.docin.com/p-1291437890.ht ...
- bootstrap基础学习九篇
现在学学bootstrap响应式实用工具 Bootstrap 提供了一些辅助类,以便更快地实现对移动设备友好的开发.这些可以通过媒体查询结合大型.小型和中型设备,实现内容对设备的显示和隐藏. 需要谨慎 ...