A web developer's resource for all things performance-related on the web, with stats, stories, and proverbs.
by Matt Basta
Performance is one of the most wide-reaching yet difficult-to-address topics in web development. Because there are so many aspects to the discipline, it is nearly impossible for any one person to address them all. In addition, performance myths and misinformation often lead well-intentioned engineers to make poor choices.
The Client-Side Performance Almanac is a guide to help web developers deliver better quality products to their clients and employers.
- Introduction to web performance
- Why perf is important
- How to measure performance (tools)
- Categorizing users
- Prioritizing performance improvements
- Overview of a page’s lifecycle
- Connection and SSL
- Assets and Payload
- JavaScript
- Connection and SSL
- Overview of TCP
- DNS Lookups
- Combining and eliminating requests
- CDNs
- SPDY
- Assets and Payload
- HTTP
- Gzip and Compression
- Images
- Prefetching and Prerendering
- Minification
- HTML/XML
- SVG
- CSS
- JS
- Overview of JS magnification
- Best minifiers and how to use them
- Worst minifiers and how not to use them
- Tips for writing optimizable JavaScript
- HTML/XML
- One asset to rule them all?
- Number of assets
- Combining assets
- Weighing the benefits of multiple files
- JavaScript
- Head or Body? Where the hell do I put my code
- defer, async, both, neither
- Browser events
- Memory
- Memory management
- Garbage collection
- Dirty, shameful tricks
- CPU-heavy code
- Optimizing for the JIT
- Web workers
- Typed arrays
- Performance of APIs
- Asm.js
- Asm.js is a red herring
- Why you should mostly never use it
- ...and what are the exceptions
- Frameworks and Performance
- Aren’t frameworks necessary?
- Aren’t frameworks unnecessary?
- jQuery
- Underscore
- Alternatives
- Proverbs
- Client-side Templating
- What it is
- How it works
- Is it better?
- Costs
- Identifying performance issues
- Browser timing api
- Timing data inside compiled files
- Storing timestamps at important page events
- Make more graphs than you care about
- Simplify
- Tech debt
- Refactoring
- Premature optimization
- Screw it, just make things better
- Conclusion
- Proverbs
- Thanks, credits
Please see the contribution guidelines.