# Performance Engineering

"**Performance engineering** encompasses the techniques applied during a [systems development life cycle](https://en.m.wikipedia.org/wiki/Systems_development_life_cycle) to ensure the [non-functional requirements](https://en.m.wikipedia.org/wiki/Non-functional_requirement) for performance (such as [throughput](https://en.m.wikipedia.org/wiki/Throughput), [latency](https://en.m.wikipedia.org/wiki/Latency_\(engineering\)), or [memory](https://en.m.wikipedia.org/wiki/Computer_memory) usage) will be met. It may be alternatively referred to as **systems performance engineering** within [systems engineering](https://en.m.wikipedia.org/wiki/Systems_engineering), and **software performance engineering** or [application performance engineering](https://en.m.wikipedia.org/wiki/Application_performance_engineering) within [software engineering](https://en.m.wikipedia.org/wiki/Software_engineering)." - Wikipedia

## Books

1. Every Computer Performance Book: How to Avoid and Solve Performance Problems  on The Computers You Work With; [Bob Wescott](https://www.amazon.com/Bob-Wescott/e/B00C7CHP34/ref=dp_byline_cont_book_1)&#x20;
2. The Practical Performance Analys&#x74;**;** [Neil Gunther](https://www.amazon.co.uk/s/ref=dp_byline_sr_book_1?ie=UTF8\&field-author=Neil+Gunther\&text=Neil+Gunther\&sort=relevancerank\&search-alias=books-uk)&#x20;
3. Systems Performance: Enterprise and the Cloud; [Gregg](https://www.amazon.com/Brendan-Gregg/e/B004GG0SEW)
4. BPF Performance Tools; [Gregg](https://www.amazon.com/Brendan-Gregg/e/B004GG0SEW)
5. Performance Solutions: A Practical Guide to Creating Responsive, Scalable Softwar&#x65;**;** [Connie U. Smith](https://www.amazon.com/Connie-U-Smith/e/B001IQXC9Q/ref=dp_byline_cont_book_1), [Lloyd G. Williams](https://www.amazon.com/s/ref=dp_byline_sr_book_2?ie=UTF8\&field-author=Lloyd+G.+Williams\&text=Lloyd+G.+Williams\&sort=relevancerank\&search-alias=books)
6. The Art of Capacity Planning: Scaling Web Resources; John Allspaw
7. Java Performance - The Definitive Guide; [Scott Oaks](https://www.amazon.com/Scott-Oaks/e/B000APH2E2)
8. Optimizing Java: Practical Techniques for Improving JVM Application Performance;  [Benjamin J Evans](https://www.amazon.com/Benjamin-J-Evans/e/B07DGL1TM4/ref=dp_byline_cont_book_1) , [James Gough](https://www.amazon.com/s/ref=dp_byline_sr_book_2?ie=UTF8\&field-author=James+Gough\&text=James+Gough\&sort=relevancerank\&search-alias=books), [Chris Newland](https://www.amazon.com/Chris-Newland/e/B07L4YL11R/ref=dp_byline_cont_book_3)
9. High Performance Browser Networking: What every web developer should know about networking and web performance; [Ilya Grigorik](https://www.amazon.com/Ilya-Grigorik/e/B00CNKCS1E/ref=dp_byline_cont_ebooks_1)
10. High-Performance Java Persistence; [Vlad Mihalcea](https://www.amazon.com/Vlad-Mihalcea/e/B01N8PGJ7E/ref=dp_byline_cont_book_1)&#x20;
11. [Go-Perf Book,](https://github.com/dgryski/go-perfbook) Thoughts on Go performance optimization, [Damian Gryski](https://twitter.com/dgryski)
12. [Performance Analysis & Tuning on Modern CPU](https://book.easyperf.net/perf_book) - Denis Bakhvalov

## Blogs

1. [http://www.brendangregg.com/blog/](http://www.brendangregg.com/blog/)
2. [https://alexanderpodelko.com/blog/](https://alexanderpodelko.com/blog/)
3. [https://www.codeblueprint.co.uk/](https://www.codeblueprint.co.uk/)
4. [https://thomasdullien.github.io/about/#blogs](https://thomasdullien.github.io/about/#blogs)
5. [http://perfsherpa.blogspot.com/](http://perfsherpa.blogspot.com/?m=1)
6. [https://facebookmicrosites.github.io/bpf/blog/](https://facebookmicrosites.github.io/bpf/blog/)
7. [https://www.igvita.com/](https://www.igvita.com/)
8. [https://travisdowns.github.io/](https://travisdowns.github.io/)
9. [https://pdziepak.github.io/](https://pdziepak.github.io/)
10. [https://branchfree.org/](https://branchfree.org/)
11. [https://lemire.me/blog/](https://lemire.me/blog/)
12. [https://mr.gy/blog/](https://mr.gy/blog/)
13. [https://blog.stgolabs.net/search/label/performance](https://blog.stgolabs.net/search/label/performance)
14. [https://mechanical-sympathy.blogspot.com/](https://mechanical-sympathy.blogspot.com/)&#x20;
15. [https://easyperf.net/notes/](https://easyperf.net/notes/)

## Twitter

1. [https://twitter.com/brendangregg](https://twitter.com/brendangregg)
2. [https://twitter.com/mjpt777](https://twitter.com/mjpt777)
3. [https://twitter.com/axboe](https://twitter.com/axboe)
4. [https://twitter.com/matt\_dz](https://twitter.com/matt_dz)
5. [https://twitter.com/dendibakh](https://twitter.com/dendibakh)
6. [https://twitter.com/trav\_downs](https://twitter.com/trav_downs)
7. [https://twitter.com/PawelDziepak](https://twitter.com/PawelDziepak)
8. [https://twitter.com/halvarflake](https://twitter.com/halvarflake)
9. [https://twitter.com/rygorous](https://twitter.com/rygorous)
10. [https://twitter.com/DrQz](https://twitter.com/DrQz)
11. [https://twitter.com/geofflangdale](https://twitter.com/geofflangdale)
12. [https://twitter.com/lemire](https://twitter.com/lemire)
13. [https://twitter.com/tuxology](https://twitter.com/tuxology)
14. [https://twitter.com/giltene](https://twitter.com/giltene)
15. [https://twitter.com/kwalfridsson](https://twitter.com/kwalfridsson)
16. [https://twitter.com/matthewwarren](https://twitter.com/matthewwarren)
17. [https://twitter.com/perfsherpa](https://twitter.com/perfsherpa)
18. [https://twitter.com/tkadlec](https://twitter.com/tkadlec)
19. [https://twitter.com/patmeenan](https://twitter.com/patmeenan)
20. [https://twitter.com/yoavweiss](https://twitter.com/yoavweiss)
21. [https://twitter.com/MarkZeman](https://twitter.com/MarkZeman)
22. [https://twitter.com/apodelko](https://twitter.com/apodelko)
23. [https://twitter.com/JVMPerformance](https://twitter.com/JVMPerformance)
24. [https://twitter.com/PerfBytes](https://twitter.com/PerfBytes)
25. [https://twitter.com/go\_perf](https://twitter.com/go_perf)
26. [https://twitter.com/fast\_code\_r\_us](https://twitter.com/fast_code_r_us)

## Links

### Aggregators

1. [https://github.com/meteorfox/performance-engineering](https://github.com/meteorfox/performance-engineering)
2. [https://github.com/mfleming/performance-resources/](https://github.com/mfleming/performance-resources/)
3. [https://github.com/andriisoldatenko/awesome-performance-testing](https://github.com/andriisoldatenko/awesome-performance-testing)

### Talks

1. [code::dive conference 2014 - Scott Meyers: Cpu Caches and Why You Care](https://www.youtube.com/watch?v=WDIkqP4JbkE)
2. [Performance Matters](https://youtu.be/r-TLSBdHe1A), Emery Berger
3. [Latency SLOs Done Right](https://www.usenix.org/conference/srecon19asia/presentation/schlossnagle-latency), Theo Schlossnagle

### Courses

1. [https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-172-performance-engineering-of-software-systems-fall-2018/)
2. [http://www.perfeng.com/classic-site/seminars.htm](http://www.perfeng.com/classic-site/seminars.htm)
3. [perf ninja](https://products.easyperf.net/perf-ninja)  and [challanges ](https://easyperf.net/contest/)- Denis Bakhvalov

### Linux

1. [http://www.brendangregg.com/blog/2020-03-08/lisa2019-linux-systems-performance.html](http://www.brendangregg.com/blog/2020-03-08/lisa2019-linux-systems-performance.html)
2. [http://www.brendangregg.com/linuxperf.html](http://www.brendangregg.com/linuxperf.html)
3. [http://www.brendangregg.com/blog/2019-01-01/learn-ebpf-tracing.html](http://www.brendangregg.com/blog/2019-01-01/learn-ebpf-tracing.html)
4. [http://www.brendangregg.com/blog/2019-07-15/bpf-performance-tools-book.html](http://www.brendangregg.com/blog/2019-07-15/bpf-performance-tools-book.html)
5. [https://github.com/leandromoreira/linux-network-performance-parameters](https://github.com/leandromoreira/linux-network-performance-parameters)
6. [https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/](https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/)

### Websites

1. [http://www.spe-ed.com/classic-site/](http://www.spe-ed.com/classic-site/)
2. [https://sites.google.com/site/swperfengg/](https://sites.google.com/site/swperfengg/)

### Various

1. [https://en.m.wikipedia.org/wiki/Performance\_engineering](https://en.m.wikipedia.org/wiki/Performance_engineering)
2. [https://www.alexanderpodelko.com/PerfDesign.html](https://www.alexanderpodelko.com/PerfDesign.html)
3. [https://developer.akamai.com/blog/2017/01/11/skills-performance-engineers](https://developer.akamai.com/blog/2017/01/11/skills-performance-engineers)
4. [https://stackify.com/performance-engineering/](https://stackify.com/performance-engineering/)
5. [https://www.dynatrace.com/news/blog/trades-of-a-performance-engineer-in-2020/](https://www.dynatrace.com/news/blog/trades-of-a-performance-engineer-in-2020/)
6. [https://opensource.com/article/19/5/life-performance-engineer](https://opensource.com/article/19/5/life-performance-engineer)
7. [https://developers.google.com/web/fundamentals/performance/why-performance-matters](https://developers.google.com/web/fundamentals/performance/why-performance-matters)
8. [https://techbeacon.com/app-dev-testing/30-top-performance-engineering-leaders-follow-twitter](https://techbeacon.com/app-dev-testing/30-top-performance-engineering-leaders-follow-twitter)
9. [https://tangowhisky37.github.io/PracticalPerformanceAnalyst/2017/12/25/Six-Reasons-Why-You-Want-To-Be-A-Systems-Performance-Engineer/](https://tangowhisky37.github.io/PracticalPerformanceAnalyst/2017/12/25/Six-Reasons-Why-You-Want-To-Be-A-Systems-Performance-Engineer/)
10. [https://www.keycdn.com/blog/https-performance-overhead](https://www.keycdn.com/blog/https-performance-overhead)
11. [https://techbeacon.com/app-dev-testing/5-ways-learn-performance-engineering-skills](https://techbeacon.com/app-dev-testing/5-ways-learn-performance-engineering-skills)
12. [https://dzone.com/articles/skills-required-to-be-a-perfect-performance-engine](https://dzone.com/articles/skills-required-to-be-a-perfect-performance-engine)
13. [https://cloud.google.com/appengine/docs/standard/java/microservice-performance](https://cloud.google.com/appengine/docs/standard/java/microservice-performance)
14. [https://www.researchgate.net/publication/313220433\_Performance\_Engineering\_for\_Microservices\_Research\_Challenges\_and\_Directions](https://www.researchgate.net/publication/313220433_Performance_Engineering_for_Microservices_Research_Challenges_and_Directions)
15. [https://www.hostingmanual.net/3-seconds-how-website-speed-impacts-visitors-sales/](https://www.hostingmanual.net/3-seconds-how-website-speed-impacts-visitors-sales/)
16. [http://normanmaurer.me/blog/2013/11/09/The-hidden-performance-costs-of-instantiating-Throwables/](http://normanmaurer.me/blog/2013/11/09/The-hidden-performance-costs-of-instantiating-Throwables/)
17. [https://pathtoperf.com/](https://pathtoperf.com/)
18. On the Impact of Memory Allocation on High-Performance Query Processing [https://arxiv.org/abs/1905.01135](https://arxiv.org/abs/1905.01135)
19. I/O Is Faster Than the CPU – Let’s Partition Resources and Eliminate (Most) OS Abstractions [https://penberg.org/parakernel-hotos19.pdf](https://penberg.org/parakernel-hotos19.pdf)
20. What Every Programmer Should Know About Memory [https://www.akkadia.org/drepper/cpumemory.pdf](https://www.akkadia.org/drepper/cpumemory.pdf)
21. [https://www.nginx.com/blog/performance-tuning-tips-tricks/](https://www.nginx.com/blog/performance-tuning-tips-tricks/)
22. [https://blog.cloudflare.com/the-problem-with-event-loops/](https://blog.cloudflare.com/the-problem-with-event-loops/)
23. [https://www.datadoghq.com/blog/network-performance-monitoring/](https://www.datadoghq.com/blog/network-performance-monitoring/)
24. [https://easyperf.net/blog/2020/04/01/HW-SW-rules-of-thumb](https://easyperf.net/blog/2020/04/01/HW-SW-rules-of-thumb)
25. [https://youtu.be/Ho3bCIJcMcc](https://youtu.be/Ho3bCIJcMcc) - Performance Analysis & Tuning on Modern CPU - Denis Bakhvalov.

