Energy Efficient Design Principles of Software Engineering
summary
Measurements use Intel RAPL via perf to report CPU+RAM energy; running Spring PetClinic with ~110k requests in 15 minutes and a Quarkus test with ~650k requests in 15 minutes shows GraalVM native-image often cuts energy, but results vary by workload (Renaissance suites ran hours and favoured different JVMs). Method uses geometric mean over repeated runs and subtracts an idle baseline. Practical fixes include sequential memory access over random, guarded/parameterized logging and reusing exceptions to avoid fillInStackTrace overhead, Maven build cache (6s → 1s) and websitecarbon/CO2.js for frontend measurement.
AI-written summary · about
chapters (15)
- 0:00Introduction to green software
- 3:15Why green software matters
- 5:02Eight principles overview
- 6:03JVM energy efficiency tests
- 12:10Measurement methodology details
- 23:27JVM selection takeaways
- 24:29Code guidelines with EOSona
- 27:20Memory access patterns
- 34:25Logging impact on energy
- 40:06Exception handling costs
- 43:01Java eco-friendly choice
- 43:45Maven caching optimization
- 45:54Autoscaling energy waste
- 46:58Web frontend efficiency
- 48:42Hosting and website carbon
related talks
39mCreate an Eco-Friendly World with Green Software Engineering
49mThe Future is 💚: A Journey through the Energy Efficient ..
31mCreate an eco-friendly world with Green Software Engineering
46mWriting Greener Java Applications
42mEnergy-Efficient Software Architecture for Developers
46mThe Efficiency Paradox: How to Save Yourself & the World
16mGreen Code: Transforming DevOps for a Sustainable Future
42mLess waste, more joy, and a lot more green: How Quarkus makes Java better
