Skip to main content

A source code eco optimizer

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ecooptimizer-0.1.0.tar.gz (15.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ecooptimizer-0.1.0-py3-none-any.whl (74.8 kB view details)

Uploaded Python 3

File details

Details for the file ecooptimizer-0.1.0.tar.gz.

File metadata

  • Download URL: ecooptimizer-0.1.0.tar.gz
  • Upload date:
  • Size: 15.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for ecooptimizer-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ed3585d00a9a44d8bb711fe9b047f5639e6a38a437c23fafb4007846d521fc9e
MD5 7dffed35be37d8bd6a228772d39b7717
BLAKE2b-256 119b85b684b0993b7791720b27d70243c9902c77d2f435d0fcd8ce91b0ae4a9b

See more details on using hashes here.

File details

Details for the file ecooptimizer-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ecooptimizer-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 74.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for ecooptimizer-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ce8fe351c60e7ebf288f888125f7777f4506dcbd84e7dfc292667d085653fa24
MD5 699264e8cba5f0e16f636fbb8d2dfba6
BLAKE2b-256 9d70c99949c43cd8ea765a915d82f1fc4afe4afd7882acfd0de2981e2faea260

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page