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.
Contributions during GSoC 2016
- 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.
Overview of work done during GSoC 2016
- 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.
Road ahead for Rperform
- 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.
This report is also available as a Github gist.
If you read and liked the report, sharing it would be a good next step.
Drop me a mail, or hit me up on Twitter or Quora in case you want to get in touch.