DeepPERF: A Deep Learning-Based Approach For Improving Software Performance

06/27/2022
by   Spandan Garg, et al.
0

Improving software performance is an important yet challenging part of the software development cycle. Today, the majority of performance inefficiencies are identified and patched by performance experts. Recent advancements in deep learning approaches and the wide-spread availability of open source data creates a great opportunity to automate the identification and patching of performance problems. In this paper, we present DeepPERF, a transformer-based approach to suggest performance improvements for C# applications. We pretrain DeepPERF on English and Source code corpora and followed by finetuning for the task of generating performance improvement patches for C# applications. Our evaluation shows that our model can generate the same performance improvement suggestion as the developer fix in  53 verbatim in our expert-verified dataset of performance changes made by C# developers. Additionally, we evaluate DeepPERF on 50 open source C# repositories on GitHub using both benchmark and unit tests and find that our model is able to suggest valid performance improvements that can improve both CPU usage and Memory allocations. So far we've submitted 19 pull-requests with 28 different performance optimizations and 11 of these PRs have been approved by the project owners.

READ FULL TEXT
research
10/15/2019

DeepVS: An Efficient and Generic Approach for Source Code Modeling Usage

Recently deep learning-based approaches have shown great potential in th...
research
11/20/2018

Automatic Test Improvement with DSpot: a Study with Ten Mature Open-Source Projects

In the literature, there is a rather clear segregation between manually ...
research
06/21/2022

Open Source Software: An Approach to Controlling Usage and Risk in Application Ecosystems

The Open Source Software movement has been growing exponentially for a n...
research
08/07/2021

PatchRNN: A Deep Learning-Based System for Security Patch Identification

With the increasing usage of open-source software (OSS) components, vuln...
research
04/26/2021

Unikraft: Fast, Specialized Unikernels the Easy Way

Unikernels are famous for providing excellent performance in terms of bo...
research
05/23/2022

AdaptivePaste: Code Adaptation through Learning Semantics-aware Variable Usage Representations

In software development, it is common for programmers to copy-paste code...
research
08/14/2023

CupCleaner: A Data Cleaning Approach for Comment Updating

Recently, deep learning-based techniques have shown promising performanc...

Please sign up or login with your details

Forgot password? Click here to reset