Energy-Efficient Software Architecture for Developers
summary
Measurements use a cheap power plug (≈150 DKK) and Linux powerstat to log CPU joules; a small test machine draws ~11 W idle and ~43 W at full load. A monolith serves at 20.3 mJ/request versus a naive microservice at 36.6 mJ/request (1.8×) when independent scaling isn’t used. Swapping MongoDB for Redis cuts server energy ~31%, adding a connection pool saves ~30%, bulk-fetching object attributes saves ~27%, and disabling excessive logging saves ~11.6%. Key tactics: shut down when idle, batch requests, use connection pooling.
AI-written summary · about
chapters (28)
- 0:00Introduction
- 1:05Defining energy tactics
- 1:46Measuring energy usage
- 6:20Energy impact examples
- 7:52Software vs hardware efficiency
- 10:46CPU energy consumption
- 12:12Lab measurements
- 14:24General energy tactics
- 15:58The importance of measuring
- 17:13How to measure
- 18:52Prioritizing and awareness
- 20:14Tactic categories
- 20:57Shutdown when idle
- 21:51Microservices vs monoliths
- 22:37Pizza Land example
- 23:26Minimize payload
- 24:26Batch processing
- 26:52Caching data
- 27:55Efficient technology
- 30:42Energy proportionality
- 32:29Horizontal scaling
- 34:40Server utilization
- 35:39Queue theory
- 36:56Pooling resources
- 37:36Lower fidelity
- 38:12Logging overhead
- 39:13Feature creep
- 40:55Conclusion
related talks
50mEnergy Efficient Design Principles of Software Engineering
10mEnergy-Efficient and Cost-Optimized Serverless Computing
01h 20mGreen Software Architecture - Dos Don'ts and Some Surprises
22mHow to (easily) evaluate the energy consumption of your software ?
44mFighting Climate Change by Building Sustainable Software
46mThe Efficiency Paradox: How to Save Yourself & the World
49mThe Future is 💚: A Journey through the Energy Efficient ..
39mCreate an Eco-Friendly World with Green Software Engineering
