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
-
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.
-
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.
-
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.
-
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:
-
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).
-
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed3585d00a9a44d8bb711fe9b047f5639e6a38a437c23fafb4007846d521fc9e
|
|
| MD5 |
7dffed35be37d8bd6a228772d39b7717
|
|
| BLAKE2b-256 |
119b85b684b0993b7791720b27d70243c9902c77d2f435d0fcd8ce91b0ae4a9b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce8fe351c60e7ebf288f888125f7777f4506dcbd84e7dfc292667d085653fa24
|
|
| MD5 |
699264e8cba5f0e16f636fbb8d2dfba6
|
|
| BLAKE2b-256 |
9d70c99949c43cd8ea765a915d82f1fc4afe4afd7882acfd0de2981e2faea260
|