Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/olest/awesome-performance

reading list on software performance
https://github.com/olest/awesome-performance

List: awesome-performance

Last synced: about 1 month ago
JSON representation

reading list on software performance

Awesome Lists containing this project

README

        

# Awesome performance links

## Blogs
* [Brendan Gregg's Blog](https://www.brendangregg.com/blog/index.html)
* [Johnny's Software Lab](https://johnnysswlab.com/)
* [Daniel Lemire's blog](https://lemire.me/blog/)
* [JabPerf](https://www.jabperf.com/blog/)
* [EasyPerf - Denis Bakhvalov](https://easyperf.net/notes/)
* [Software Bits Newsletter](https://softwarebits.substack.com)
* [Abseil.io - Performance Tips of Week](https://abseil.io/fast/)
* [Agner Fog - Software optimization resources](https://www.agner.org/optimize/)
* [Wojciech Muła - blog](http://0x80.pl/notesen.html)
* [MattPD's C++ links: performance tools](https://github.com/MattPD/cpplinks/blob/master/performance.tools.md)
* [Computer, Enhance!](https://www.computerenhance.com/)
* [Performance Engineering For Parallel Applications](https://pramodkumbhar.com/)
* [strlcpy and how CPUs can defy common sense](https://nrk.neocities.org/articles/cpu-vs-common-sense)

## Books
* [High Performance Browser Networking](https://hpbn.co/)
* [Performance Analysis and Tuning on Modern CPUs](https://book.easyperf.net/perf_book)
* [SIMD for C++ developers](http://const.me/articles/simd/simd.pdf)
* [Is Parallel Programming Hard, and, if so, what can you do about it?](https://mirrors.edge.kernel.org/pub/linux/kernel/people/paulmck/perfbook/perfbook.2022.09.25a.pdf)
* [Computer Systems: A Programmer's Perspective](https://csapp.cs.cmu.edu/3e/home.html)
* [Algorithms for Modern Hardware](https://en.algorithmica.org/hpc/)

## Profiling
* [How to enable performance counters in google benchmark](https://github.com/google/benchmark/blob/main/docs/perf_counters.md)
* [Intel Performance Counter Monitor](https://www.intel.com/content/www/us/en/developer/articles/technical/performance-counter-monitor.html)
* [Tracy - a hybrid frame and sampling profiler for games and other applications](https://github.com/wolfpld/tracy)
* [uftrace : function call graph tracer for C, C++, Rust and Python](https://github.com/namhyung/uftrace)
* [Memray : memory profiler for Python](https://github.com/bloomberg/memray)
* [MTuner: C/C++ memory profiler and memory leak finder for Windows, PlayStation 4 and 3, Android and other platforms](https://github.com/milostosic/MTuner)
* [pmu tools : tools and libraries for profile collection and performance analysis on Intel CPUs](https://github.com/andikleen/pmu-tools)
* [Coz: Finding Code that Counts with Causal Profiling](https://github.com/plasma-umass/coz)
* [Laurence Tratt - four kinds of optimization](https://tratt.net/laurie/blog/2023/four_kinds_of_optimisation.html)
* [cpplinks - performance](https://github.com/MattPD/cpplinks/blob/master/performance.tools.md)
* [firefox profiler](https://profiler.firefox.com/)
* [Bloaty: a size profiler for binaries](https://github.com/google/bloaty)
* [Advanced usage of last branch records](https://lwn.net/Articles/680996/)
* [Terminal flame graph](https://github.com/4rtzel/tfg)
* [Flameshow (Terminal Flamegraph viewer)](https://github.com/laixintao/flameshow)
* [Google performance tools](https://github.com/gperftools/gperftools/)
* [Performance Myths and Continuous Profiling](https://richardstartin.github.io/posts/perf-myths-and-continuous-profiling)
* [strace cheatsheet](https://blog.packagecloud.io/strace-cheat-sheet/)
* [GWPSan: Sampling-Based Sanitizer Framework](https://github.com/google/gwpsan)
* [magic-trace](https://github.com/janestreet/magic-trace)
* [0x.tools - X-Ray vision for Linux systems](https://0x.tools/)

## Operating systems
* [Phoronix - Linux Hardware Reviews](https://www.phoronix.com/)
* [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/)
* [4Kb page size is obsolete](https://ieeexplore.ieee.org/abstract/document/5211562)
* [On the cost of syscalls](https://gms.tf/on-the-costs-of-syscalls.html)
* [io_uring explained (unzip.dev)](https://unzip.dev/0x013-io_uring/)
* [linux-insides](https://github.com/0xAX/linux-insides/blob/master/SUMMARY.md)
* [Interactive map of the Linux kernel](https://makelinux.github.io/kernel/map/)
* [Controlling the page cache](https://alg-eng.blogspot.com/?m=1)
* [How to troubleshoot high I/O wait time in Linux](https://www.site24x7.com/learn/linux/troubleshoot-high-io-wait.html)
* [Unwinding the stack the hard way](https://lesenechal.fr/en/linux/unwinding-the-stack-the-hard-way)

## Concurrency
* [Why core to core latency matters (JVM)](https://foojay.io/today/why-core-to-core-latency-matters/)
* [core-to-core-latency: A Nice Little Tool!](https://pramodkumbhar.com/2023/09/core-to-core-latency-a-nice-little-tool/)
* [Measuring CPU core-to-core latency](https://github.com/nviennot/core-to-core-latency)

## Compilers
* [Horrible code - clean performance](https://johnnysswlab.com/horrible-code-clean-performance/)
* [Don't use the likely or unlikely attributes](https://blog.aaronballman.com/2020/08/dont-use-the-likely-or-unlikely-attributes/)
* [mold: A Modern Linker](https://github.com/rui314/mold)

## Memory
* [Are you sure you want to use MMP in your DBMS?](https://db.cs.cmu.edu/mmap-cidr2022/)
* [Memory allocation](https://samwho.dev/memory-allocation/)
* [Red Hat: Huge pages and transparent huge pages](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-memory-transhuge)
* [Huge pages are a good idea](https://www.evanjones.ca/hugepages-are-a-good-idea.html)
* [snmalloc high-performance allocator](https://github.com/microsoft/snmalloc)
* [Determining whether an application has poor cache performance](https://developers.redhat.com/blog/2014/03/10/determining-whether-an-application-has-poor-cache-performance-2#)
* [Transparent huge pages](https://www.digitalocean.com/blog/transparent-huge-pages-and-alternative-memory-allocators)
* [Linux weekly news on Transparent Huge pages](https://lwn.net/Articles/374424/)
* [Using Huge Pages on Linux](https://rigtorp.se/hugepages/)
* [TCMalloc and RocksDB](https://blog.cloudflare.com/the-effect-of-switching-to-tcmalloc-on-rocksdb-memory-use/)
* [Sam on Memory allocation](https://samwho.dev/memory-allocation/)
* [Intel Cache Allocation Technology](https://www.intel.com/content/www/us/en/developer/articles/technical/introduction-to-cache-allocation-technology.html)
* [JVM field guide memory](https://serce.me/posts/01-02-2023-jvm-field-guide-memory)
* [What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf)
* [Latency numbers every programmer should know](https://gist.github.com/jboner/2841832)
* [Testing Memory Allocators](http://ithare.com/testing-memory-allocators-ptmalloc2-tcmalloc-hoard-jemalloc-while-trying-to-simulate-real-world-loads/)
* [Dmalloc - Debug Malloc Library](https://dmalloc.com/)
* [Memory management reading list](https://gist.github.com/simonrenger/d1da2a10d11f8a971fc6f1b574ab3e99)
* [malloc_count - Tools for Runtime Memory Usage Analysis and Profiling](https://panthema.net/2013/malloc_count/)
* [Heaptrack](https://github.com/KDE/heaptrack)
* [Sneaky (transparent) huge pages](https://tbenthompson.com/post/sneaky-transparent-huge-pages/)
* [SRE deep dive into page cache](https://biriukov.dev/docs/page-cache/0-linux-page-cache-for-sre/)
* [Memory Allocation Strategies - Part 1](https://www.gingerbill.org/article/2019/02/01/memory-allocation-strategies-001/)
* [Garbage Collection for Systems Programmers](https://bitbashing.io/gc-for-systems-programmers.html)

## Benchmarks
* [Mastering C++ with Google Benchmark](https://ashvardanian.com/posts/google-benchmark/)
* [Open benchmarking](https://openbenchmarking.org/)
* [Celero](https://github.com/DigitalInBlue/Celero)
* [Folly - benchmarks](https://github.com/facebook/folly/blob/main/folly/docs/Benchmark.md)
* [Godbolt's Law](https://xania.org/200504/godbolt's-law)
* [nanobench](https://github.com/martinus/nanobench)
* [Flexible I/O Tester](https://github.com/axboe/fio)
* [Cinebench 2024: Reviewing the Benchmark](https://chipsandcheese.com/2023/10/22/cinebench-2024-reviewing-the-benchmark/)
* [sysbench - scriptable database and system performance benchmark](https://github.com/akopytov/sysbench)
* [All Measurements are Wrong - Guerilla Aphorisms](http://www.perfdynamics.com/Manifesto/gcaprules.html#tth_sEc2.25)
* [bonnie++](https://www.coker.com.au/bonnie++/)
* [Open Catalog on best practices for performance](https://github.com/codee-com/open-catalog)
* [AnandTech 2021 SSD Benchmark Suite](https://www.anandtech.com/show/16458/2021-ssd-benchmark-suite)
* [A cross-platform C library to retrieve CPU features](https://github.com/google/cpu_features)
* [An Extensive Benchmark of C and C++ Hash Tables](https://jacksonallan.github.io/c_cpp_hash_tables_benchmark/)

## Algorithms and data structures
* [Bitwise binary search](https://orlp.net/blog/bitwise-binary-search/)
* [Sort benchmark](https://sortbenchmark.org/)
* [Novel base64 implementation using lookup tables](https://github.com/npodonnell/fast-base64)
* [Open Data Structures - an open content textbook](https://opendatastructures.org/)
* [Algorithms by Jeff Erickson](https://jeffe.cs.illinois.edu/teaching/algorithms/)
* [Colony - An unordered bucket-like data container providing fast iteration/insertion/erasure](https://plflib.org/colony.htm)

## Lectures or conference talks
* [Performance Engineering of Software Systems - MIT Open Course Ware](https://ocw.mit.edu/courses/6-172-performance-engineering-of-software-systems-fall-2018/)

## Journal articles or technical reports
* [Raasveldt et al: Fair Benchmarking Considered Difficult](https://mytherin.github.io/papers/2018-dbtest.pdf)
* [John Ousterhout: Always measure one level deeper](https://cacm.acm.org/research/always-measure-one-level-deeper/)

## Static code analysis
* [Cobra](https://github.com/nimble-code/Cobra/)
* [Infer](https://github.com/facebook/infer)

## Programming languages
* [Open Catalog on best practices for performance](https://github.com/codee-com/open-catalog)
* [Python Speed Center](https://speed.python.org/about/)

## Machine learning
* [Making Deep Learning Go Brrrr From First Principles](https://horace.io/brrr_intro.html)