Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/olest/awesome-performance
reading list on software performance
https://github.com/olest/awesome-performance
List: awesome-performance
Last synced: 16 days ago
JSON representation
reading list on software performance
- Host: GitHub
- URL: https://github.com/olest/awesome-performance
- Owner: olest
- Created: 2023-05-21T21:00:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-11T21:38:26.000Z (about 1 month ago)
- Last Synced: 2024-11-25T17:02:22.470Z (26 days ago)
- Size: 26.4 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- ultimate-awesome - awesome-performance - Reading list on software performance. (Other Lists / Monkey C Lists)
README
# Awesome performance and low-level programming 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)
* [n0derunner - platform performance](https://www.n0derunner.com/)
* [marek.ai](https://marek.ai/matrix-multiplication-on-cpu.html)
* [justinblank.com](https://justinblank.com/notebooks/benchmarking.html)
* [Israel Ogbole : Profile-Guided Optimization: A Hands-On Guide to Reducing Computational Wastage](https://israelo.io/blog/pgo/)
* [Confessions of a Code Addict](https://blog.codingconfessions.com/p/simultaneous-multithreading)## Libraries
* [fast_float](https://github.com/fastfloat/fast_float)
* [fast base64 conversion](https://github.com/simdutf/simdutf)## 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/)
* [health-check](https://github.com/ColinIanKing/health-check)
* [Profile-Guided Optimization: A Hands-On Guide](https://israelo.io/blog/pgo/)
* [Performance tuning tutorial](https://github.com/NAThompson/performance_tuning_tutorial)## 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)
* [Learning low-level programming and systems programming](https://github.com/mohitmishra786/amILearningEnough)## 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)
* [Pagemon - browse the memory map of an active running process](https://github.com/ColinIanKing/pagemon)
* [Poul-Henning Kamp - Malloc(3) in modern Virtual Memory environments](https://docs-archive.freebsd.org/44doc/papers/malloc.pdf)## 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/)
* [comprehensive set of IO benchmarks for Linux and OS X](https://github.com/adityaramesh/io_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/)
* [NanoLog: A Nanosecond Scale Logging System](https://www.usenix.org/system/files/conference/atc18/atc18-yang.pdf)## 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)## I/O
* [Userland Disk I/O](https://transactional.blog/how-to-learn/disk-io)