Skip to main content

Source Code Energy Optimizer

Developer Names: Sevhena Walker, Mya Hussain, Ayushi Amin, Tanveer Brar, Nivetha Kuruparan Supervisor: Dr. David Istvan

Date of project start: September 16th 2024

Project Overview: The goal of this project is to develop tools to improve the energy efficiency of engineered software through refactoring without altering the intent of the source code.


Key Features

  1. Refactoring Library

    • Provides automated refactoring tools aimed at optimising code for energy efficiency while preserving its functional behaviour.
    • Analyses code to identify energy-intensive patterns and recommends or applies energy-saving transformations.
    • Ensures refactored code remains maintainable and efficient across different platforms.
  2. Python-Specific Refactoring Optimization

    • Tailors energy-efficient refactoring strategies based on the specific characteristics of Python.
    • Provides guidelines and transformations to minimise energy consumption while maintaining code compatibility.
    • Adapts to the unique performance and energy model of Python.
  3. Reinforcement Learning for Refactoring Preferences

    • Utilises reinforcement learning to adapt refactoring strategies based on past performance data.
    • Continuously improves the refactoring process by learning which transformations lead to the greatest energy savings.
    • Continuously improves the refactoring process by learning which transformations lead to most technically sustainable (readable) code.
  4. DevOps GitHub Integration

    • Integrates with GitHub to automatically trigger energy-efficient refactoring as part of the CI/CD pipeline.
    • Provides version control, ensuring that refactoring changes can be tracked, tested, and validated before deployment.
    • Implements an automated feedback loop that records energy consumption data and feeds it back into the library's reinforcement learning model.
    • Automates testing of source code within the DevOps workflow to ensure that behaviour is maintained.

Nice-to-Have Features:

  1. Library Plugin

    • Offers a plugin extension for popular IDEs and platforms, allowing developers to easily incorporate the refactoring library into their existing workflows.
    • Provides real-time suggestions and refactoring options within the development environment, enhancing usability and accessibility.
    • Synchronizes plugin with website allowing developers to view measurements taken in a visual manner (i.e. graphs, tables).
  2. Human-in-the-Loop Reinforcement Learning

    • Involves human feedback in the reinforcement learning process to guide the system's refactoring decisions based on developer expertise and preferences.
    • Balances automated refactoring with human oversight to ensure that complex refactoring decisions align with the project's goals and constraints.

The folders and files for this project are as follows:

docs - Documentation for the project

refs - Reference material used for the project, including papers

src - Source code

test - Test cases

etc.

Metadata

Release files for ecooptimizer 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ecooptimizer 0.1.0
File Size Uploaded
ecooptimizer-0.1.0.tar.gz 15.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for ecooptimizer 0.1.0
File Interpreter ABI Platform
ecooptimizer-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 15.2 MB

Release files / ecooptimizer-0.1.0.tar.gz

Download URL ecooptimizer-0.1.0.tar.gz
Size 15.1 MB
Tags Source
SHA-256 checksum
How to use checksums
ed3585d00a9a44d8bb711fe9b047f5639e6a38a437c23fafb4007846d521fc9e
BLAKE2b-256 checksum
How to use checksums
119b85b684b0993b7791720b27d70243c9902c77d2f435d0fcd8ce91b0ae4a9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.11

Release files / ecooptimizer-0.1.0-py3-none-any.whl

Download URL ecooptimizer-0.1.0-py3-none-any.whl
Size 74.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce8fe351c60e7ebf288f888125f7777f4506dcbd84e7dfc292667d085653fa24
BLAKE2b-256 checksum
How to use checksums
9d70c99949c43cd8ea765a915d82f1fc4afe4afd7882acfd0de2981e2faea260
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page