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's nearly impossible to consider each one in a serial way. 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
- Categorizing users
- Prioritizing performance improvements
- Identifying performance issues
- Browser timing API
- Timing data inside compiled files
- Storing timestamps at important page events
- Make more graphs
- Simplify
- Tech debt
- Refactoring
- Premature optimization
- Overview of a page’s lifecycle
- Connection and SSL
- Overview of TCP
- DNS Lookups
- TCP Connections
- CDNs
- SPDY
- Assets and Payload
- HTTP
- Gzip and Compression
- Images
- Prefetching and Prerendering
- Minification
- Markup
- 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
- Markup
- 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
- Client-side Templating
- What it is
- How it works
- Is it better?
- Costs
- Conclusion
- Proverbs
- Thanks, credits
Please see the contribution guidelines.