Developer : Akash Tandon
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 .
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.