Hey everyone! I'm a senior engineering student trying to decide on a solid project for my capstone. I have an idea that I'd like to run by you all. I'm thinking of creating a tool that measures how much energy (in Watts or Joules) each function in a software application consumes in real-time. It's focused on promoting 'Green Coding' practices.
Here are some concerns I have:
- Is it really feasible to acquire reliable energy data solely through software (like using Intel RAPL), or is it mostly just educated guesses?
- As developers, would you genuinely care if your code is consuming a lot of energy, or is this metric essentially irrelevant?
- Am I aiming too high for a six-month project?
I'm eager to develop something unique that goes beyond a typical CRUD application! I'd greatly appreciate any insights or alternate ideas you might have.
5 Answers
This is actually a really cool capstone idea! While performance profiling tools exist, energy profiling is still a niche area, so it could really make your resume pop if done well. Just keep in mind, getting precise energy numbers from software is tough—most tools give estimates. It could work for a 6-month timeline if you scope it correctly, maybe start by focusing on CPU-heavy workloads. Definitely more interesting than another CRUD app!
If you want to cover various hardware, you might end up relying on estimates. You could gather info on power usage from specific hardware APIs (like ADEME in my area). So you'd take software metrics (disk I/O, Intel RAPL, RAM usage, etc.) to get a rough estimate. Just a suggestion!
Honestly, I think this isn't really necessary. If anyone cares about energy efficiency (doubt anyone really does), current profiling tools could help you optimize your code and achieve similar benefits without the extra complexity.
If you're diving into general engineering, consider creating a power monitoring module that connects between your power supply unit and motherboard. It would teach you about electronics and embedded programming, plus if you include an API for home automation, you'd also learn about HTTP APIs!
In theory, you could get pretty far by tallying the instructions executed along a code path, giving you clock cycles and RAM usage details. But with non-native languages like Python or Java, it becomes much more complicated since you can't pinpoint how much work the VM is doing. It could range from being 10x to 1000x more challenging based on your script!

Related Questions
How To: Running Codex CLI on Windows with Azure OpenAI
Set Wordpress Featured Image Using Javascript
How To Fix PHP Random Being The Same
Why no WebP Support with Wordpress
Replace Wordpress Cron With Linux Cron
Customize Yoast Canonical URL Programmatically