Introduction
Welcome
What you should know
Approaching Efficiency
Clearing up the misconceptions
Rule 1 - Code efficiency
The first rule applied to new code
Rule 2 - You don't know the problem
Areas of efficiency
Rule 3 - Understand what's under your control
Rule 4 - Always look for the easy win
Embrace your constraints
Areas not covered
Measurement
Code analysis tools
General monitoring tools
Detailed monitoring tools - Mac
Detailed monitoring tools - PC
Overview of developer-focused tools
Web application tools
Memory
Core concepts of memory usage
The memory footprint of an application
Strategies for memory efficiency
Languages and environment issues
Algorithmic Efficiency
Introduction to algorithmic efficiency
Basic measurement
Low-tech tracing and profiling
Example - Tracing and profiling in JavaScript
Example - Tracing and performance counters in .NET
Introduction to Big O complexity
What to look for in code
Disk-Based and Network Resources
Disk-based resources
Speed expectations
Strategies for disk I/O
Network efficiency
Strategies for network efficiency
What about database efficiency
Conclusion
Next steps