Developer: Akash Tandon
Mentors: Joshua Ulrich, Toby Dylan Hocking
Official Project Link: Rperform: performance analysis of R package code
This project meant to deal primarily with development of Rperform's functionalities to allow developers to obtain potential performance impacts of a pull request (PR) without having to merge, extension of the package's existing performance metric measurement and visualization functions, and development of a coherent user interface for developers to interact with.
Rperform is a package that allows R developers to track and visualize quantitative performance metrics of their code.
It focuses on providing changes in a package’s performance metrics, related to runtime and memory, over different git versions and across git branches. Rperform can be integrated with Travis-CI to do performance testing during Travis builds by making changes to the repo's .travis.yml file. It can prove to be particularly useful while measuring the possible changes which can be introduced by a pull request (PR).
More information about the package can be found on its Github Wiki.
- Commits made to Rperform's master branch can be accessed here.
- Created a test and demo package for Rperform. It can be found here. List of 8 commits made to this package during GSoC 2016 is given at the end of this document.
- Created the tutorials, Using Rperform with packages and Using Rperform with Travis CI.
- Created the wiki page, Obtaining package performance data using Rperform, and updated the wiki pages, Integrating Rperform with Travis CI and Plotting package metrics with Rperform.
- Visualization: Implemented plot_branchmetrics() and its helper functions. This function can be used to compare code performance across two branches. More information about the same can be found here.
- Travis CI integration: Wrote functions and shell scripts to allow for performance testing using Rperform during a package repo's Travis CI builds. More information about using Rperform with Travis CI can be found by going through this wiki page and this tutorial.
- Refactoring: Refactored portions of existing code.
- Documentation: Updated the R package's documentation and Github wiki.
- Interactive visualizations: Work was done towards implementing interactive visualizations in Rperform. The animint package was used for the same. However, more work needs to be done.
- User Interface: As of now, the webpages containing results from performance tests during Travis builds are static. Work needs to be done towards implementing a coherent UI.