├── CONTRIBUTING.md └── README.md /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ### Contributing 2 | 3 | Inspired by 4 | [M. McGrana's Services engineering reading list](https://github.com/mmcgrana/services-engineering) 5 | This reading list tries to aggregate a curated list of performance 6 | engineering articles of high quality content. One goal of this reading 7 | list is to make a distinction between theory/methodology and systems/tools/frameworks in 8 | performance engineering. 9 | 10 | Suggestions are welcome to this reading list. 11 | 12 | In the [issues](https://github.com/meteorfox/performance-engineering/issues) 13 | for this repository we track specific suggestions for additions and 14 | topics that we'd like to cover but don't have good resources for yet. 15 | 16 | Please make your own suggestions by opening an issue or commenting 17 | on an existing one. Please prefer issues to pull requests and one 18 | issue for each suggested resource. 19 | 20 | Note that the list only includes material that's been read 21 | personally by the editor, so some suggestions may have a long 22 | turnaround time, especially books and conferences. 23 | 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Performance Engineering Reading List 2 | 3 | A reading/viewing list about the theory and practice of performance engineering with 4 | a focus on distributed web services and applications. 5 | 6 | [Suggestions](CONTRIBUTING.md) are welcome. 7 | 8 | Inspired by 9 | [M. McGranaghan services engineering reading list](https://github.com/mmcgrana/services-engineering). 10 | 11 | #### Table of Contents 12 | * [Theory and methodology](#theory) 13 | * [Systems, Platforms, Frameworks and Tools](#tools) 14 | 15 | 16 | 17 | 18 | ### Theory and methodology 19 | 20 | #### Papers 21 | * [Rigorous Benchmarking in Reasonable Time](https://www.researchgate.net/publication/257193308_Rigorous_Benchmarking_in_Reasonable_Time/link/546df6ff0cf29806ec2e638e/download) 22 | * [CPI2: CPU performance isolation for shared compute clusters](http://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/40737.pdf) 23 | * [The Tail at Scale](http://cacm.acm.org/magazines/2013/2/160173-the-tail-at-scale/abstract) (J. Dean) 24 | * [Open vs Closed Systems: A Cautionary Tale](http://users.cms.caltech.edu/~adamw/papers/openvsclosed.pdf) 25 | 26 | #### Presentations 27 | * [Understanding Latency](https://www.youtube.com/watch?v=9MKY4KypBzg) (G. Tene) 28 | * [Top 10 - Performance Folklore](http://www.infoq.com/presentations/top-10-performance-myths) (M. Thompson) 29 | * [Mechanical Sympathy](http://www.infoq.com/presentations/mechanical-sympathy) (M. Thompson) 30 | * [Practicing at the Cutting Edge: Learning and Unlearning about Performance](http://www.infoq.com/presentations/java-performance) (M. Thompson) 31 | * [Benchmarking: You're Doing It Wrong](https://www.youtube.com/watch?v=XmImGiVuJno) 32 | * [The Tail at Scale: Achieving Rapid Response Times in Large Online Services](https://www.youtube.com/watch?v=C_PxVdQmfpk) (J. Dean) 33 | * [Scalability Lessons from eBay, Google, and Real-time Games](http://www.infoq.com/presentations/scalability-ebay-google-kixeye) 34 | 35 | #### Posts 36 | * [How Not to Measure Computer System Performance](https://homes.cs.washington.edu/~bornholt/post/performance-evaluation.html) 37 | * [Bentley's Rules](http://www.new-npac.org/projects/cdroms/cewes-1999-06-vol1/nhse/hpccsurvey/orgs/sgi/bentley.html) 38 | * [Compilers Love Messing With Benchmarks](http://www.brendangregg.com/blog/2014-05-02/compilers-love-messing-with-benchmarks.html) (B. Gregg) 39 | * [The USE Method](http://www.brendangregg.com/usemethod.html) 40 | * [13 Benchmarking Sins](http://www.computerworld.com/article/2486830/computer-hardware/13-benchmarking-sins.html) (B. Gregg) 41 | 42 | #### Books 43 | * [Systems Performance: Enterprise and the Cloud](http://www.amazon.com/Systems-Performance-Enterprise-Brendan-Gregg/dp/0133390098) (B. Gregg) 44 | 45 | #### Courses and Classwork 46 | * [MIT 6.172 - Performance Engineering of Software Systems](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/) 47 | 48 | --- 49 | 50 | 51 | ### Systems, Platforms, Frameworks and Tools 52 | 53 | #### Papers 54 | * [Google-Wide Profiling](http://static.googleusercontent.com/media/research.google.com/en/us/pubs/archive/36575.pdf) 55 | 56 | #### Presentations 57 | * [JVM Mechanics](http://www.infoq.com/presentations/JVM-Mechanics) (G. Tene) 58 | * [Performance Testing Java Applications](http://www.infoq.com/presentations/performance-testing-java) (M. Thompson) 59 | * [Linux Performance Tools 2014](http://www.brendangregg.com/blog/2014-11-22/linux-perf-tools-2014.html) (B. Gregg) 60 | 61 | #### Posts and Tutorials 62 | * [Java GC Distilled](http://mechanical-sympathy.blogspot.com/2013/07/java-garbage-collection-distilled.html) (M. Thompson) 63 | * [CPU Cache Flush Fallacy](http://mechanical-sympathy.blogspot.com/2013/02/cpu-cache-flushing-fallacy.html) (M. Thompson) 64 | * [Linux perf](http://www.brendangregg.com/perf.html) (B. Gregg) 65 | * [ftrace: The hidden light switch](http://lwn.net/Articles/608497/) (B. Gregg) 66 | 67 | #### Books 68 | * [Java Performance](http://www.amazon.com/Java-Performance-Charlie-Hunt/dp/0137142528) 69 | 70 | #### Courses 71 | 72 | #### Repos 73 | * [PerfKitBenchmarker](https://github.com/GoogleCloudPlatform/PerfKitBenchmarker) (Google et. al.) 74 | --------------------------------------------------------------------------------