<p><div><div><div><div data-width="100" data-show-faces="false" data-send="true" data-layout="button_count" data-height="21" data-href="https://www.r-bloggers.com/gsoc-2016-report-rperform/"></div></div><div><a data-url="https://www.r-bloggers.com/gsoc-2016-report-rperform/" data-counturl="https://www.r-bloggers.com/gsoc-2016-report-rperform/" data-count="horizontal" data-text="GSoC 2016 Report – Rperform" class="twitter-share-button" data-via="rbloggers" href="https://twitter.com/share"></a></div><div></div></div><div></div></div>
<div>
(This article was first published on <strong><a href="https://techandmortals.wordpress.com/2016/08/23/gsoc-2016-report-rperform-performance-analysis-of-r-package-code/"> R – Tech and Mortals</a></strong>, and kindly contributed to <a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers)</a> </div>
<p><em>Developer</em>: <a target="_blank" href="https://github.com/analyticalmonk/">Akash Tandon</a><br>
<em>Mentors</em>: <a target="_blank" href="https://github.com/joshuaulrich">Joshua Ulrich</a>, <a target="_blank" href="https://github.com/tdhock">Toby Dylan Hocking</a><br>
<em>Official Project Link</em>: <a target="_blank" href="https://summerofcode.withgoogle.com/projects/?sp-search=akashtndn#5195867359281152">Rperform: performance analysis of R package code</a></p>
<p><img alt="gsoc2016" class="wp-image-426" src="https://i1.wp.com/techandmortals.files.wordpress.com/2016/05/gsoc2016.png?w=456&ssl=1" data-recalc-dims="1"></p>
<p>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.</p>
<h2>About Rperform</h2>
<p><a target="_blank" href="https://github.com/analyticalmonk/rperform">Rperform</a> is a package that allows R developers to track and visualize quantitative performance metrics of their code.<br>
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. <strong>It can prove to be particularly useful while measuring the possible changes which can be introduced by a pull request (PR).</strong><br>
More information about the package can be found on its <a target="_blank" href="https://github.com/analyticalmonk/rperform/wiki">Github Wiki</a>.</p>
<h2>Contributions during GSoC 2016</h2>
<ul>
<li>Commits made to Rperform’s master branch can be accessed <a target="_blank" href="https://github.com/analyticalmonk/Rperform/compare/master@%7B05-24-16%7D...master@%7B08-23-16%7D">here</a>.</li>
<li>Created a test and demo package for Rperform. It can be found <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/">here</a>. List of 8 commits made to this package during GSoC 2016 is given at the end of this document.</li>
<li>Created the tutorials, <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Tutorial:-Using-Rperform-with-packages">Using Rperform with packages</a> and <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Tutorial:-Using-Rperform-with-Travis-CI">Using Rperform with Travis CI</a>.</li>
<li>Created the wiki page, <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Obtaining-package-performance-data-using-Rperform">Obtaining package performance data using Rperform</a>, and updated the wiki pages, <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Integrating-Rperform-with-Travis-CI/_compare/5eba6dc50e35e381201a24f4b5e17cd6b5f09c01...47e0ab72f7d0344fa29fa22b7ef00a30ec142b2c?diff=split">Integrating Rperform with Travis CI</a> and <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Plotting-package-metrics-with-Rperform/_compare/2d76a953638294134624c0f7899ea7528f66b15e...44bd25aeae003e34d26d9a041fe72ba2a4431840">Plotting package metrics with Rperform</a>.</li>
</ul>
<h2>Overview of work done during GSoC 2016</h2>
<ul>
<li><em>Visualization</em>: 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 <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Plotting-package-metrics-with-Rperform#commits-across-two-branches">here</a>.</li>
<li><em>Travis CI integration</em>: 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 <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Integrating-Rperform-with-Travis-CI">wiki page</a> and this <a target="_blank" href="https://github.com/analyticalmonk/Rperform/wiki/Tutorial:-Using-Rperform-with-Travis-CI">tutorial</a>.</li>
<li><em>Refactoring</em>: Refactored portions of existing code.</li>
<li><em>Documentation</em>: Updated the R package’s documentation and Github wiki.</li>
</ul>
<h2>Road ahead for Rperform</h2>
<ul>
<li><em>Interactive visualizations</em>: Work was done towards implementing interactive visualizations in Rperform. The <a target="_blank" href="http://github.com/tdhock/animint">animint</a> package  was used for the same. However, more work needs to be done.</li>
<li><em>User Interface</em>: 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.</li>
</ul>
<h2>Miscellaneous</h2>
<ul>
<li>Commits made to <em>RperformTestPackage</em> during GSoC 2016: <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/7bcb830e146e1138b764df49bd01bc2444599c71?diff=unified">#1</a>, <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/6f67ae958fda1cc705bb235a2b5be9af8601c249">#2</a>, <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/7fa4ac3dbf6be20d7ad2f3aefc6633c7c496056e">#3</a>, <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/92d533f1bb113a4c5fc370d8c42ceb92858aaf59">#4</a>, <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/54bd17655c5dc829ab2b60c6ce8d4a7bf5ce2f0d">#5</a>, <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/7d35b2cbb2c800fdd22a09f53f927099ebea072b">#6</a>, <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/0cd26169a5ef0389683c70315ff5cb6c8e2945fe">#7</a> and <a target="_blank" href="https://github.com/analyticalmonk/RperformTestPackage/commit/3fb574425ba46be4399152f304c30d41b378b392">#8</a>.</li>
</ul>
<p><strong>Note:<br>
This report is also available as a <a target="_blank" href="https://gist.github.com/analyticalmonk/d58e7e472cf9b07c114592f92d055da3">Github gist</a>.<br>
If you read and liked the report, sharing it would be a good next step.<br>
Drop me a <a target="_blank" href="mailto:akashtndn.acm@gmail.com">mail</a>, or hit me up on <a target="_blank" href="http://twitter.com/AkashTandon">Twitter</a> or <a target="_blank" href="https://www.quora.com/profile/Akash-Tandon-1">Quora</a> in case you want to get in touch.</strong></p>
<p> <a target="_blank" rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/techandmortals.wordpress.com/962/"><img alt="" src="http://feeds.wordpress.com/1.0/comments/techandmortals.wordpress.com/962/" border="0"></a> <img alt="" src="https://i1.wp.com/pixel.wp.com/b.gif?resize=1%2C1&ssl=1" border="0" data-recalc-dims="1"></p>
<p><div><div><div><div data-width="55" data-show-faces="false" data-send="true" data-layout="box_count" data-height="62" data-href="https://www.r-bloggers.com/gsoc-2016-report-rperform/"></div></div><div><a data-url="https://www.r-bloggers.com/gsoc-2016-report-rperform/" data-counturl="https://www.r-bloggers.com/gsoc-2016-report-rperform/" data-count="vertical" data-text="GSoC 2016 Report – Rperform" class="twitter-share-button" data-via="rbloggers" href="https://twitter.com/share"></a></div><div></div></div><div></div></div>
<div>
<div>To <strong>leave a comment</strong> for the author, please follow the link and comment on their blog: <strong><a href="https://techandmortals.wordpress.com/2016/08/23/gsoc-2016-report-rperform-performance-analysis-of-r-package-code/"> R – Tech and Mortals</a></strong>.</div>
<hr>
<a rel="nofollow" href="https://www.r-bloggers.com/">R-bloggers.com</a> offers <strong><a rel="nofollow" href="https://feedburner.google.com/fb/a/mailverify?uri=RBloggers">daily e-mail updates</a></strong> about <a title="The R Project for Statistical Computing" rel="nofollow" href="https://www.r-project.org/">R</a> news and <a title="R tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=tutorial">tutorials</a> on topics such as: <a title="Data science" rel="nofollow" href="https://www.r-bloggers.com/?s=data%20science">Data science</a>, <a title="Big Data" rel="nofollow" href="https://www.r-bloggers.com/?s=Big%20Data">Big Data, <a title="R jobs" rel="nofollow" href="https://www.r-users.com/">R jobs</a>, visualization (<a title="ggplot and ggplot2 tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=ggplot2">ggplot2</a>, <a title="Boxplots using lattice and ggplot2 tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=boxplot">Boxplots</a>, <a title="Maps and gis" rel="nofollow" href="https://www.r-bloggers.com/?s=map">maps</a>, <a title="Animation in R" rel="nofollow" href="https://www.r-bloggers.com/?s=animation">animation</a>), programming (<a title="RStudio IDE for R" rel="nofollow" href="https://www.r-bloggers.com/?s=RStudio">RStudio</a>, <a title="Sweave and literate programming" rel="nofollow" href="https://www.r-bloggers.com/?s=sweave">Sweave</a>, <a title="LaTeX in R" rel="nofollow" href="https://www.r-bloggers.com/?s=LaTeX">LaTeX</a>, <a title="SQL and databases" rel="nofollow" href="https://www.r-bloggers.com/?s=SQL">SQL</a>, <a title="Eclipse IDE for R" rel="nofollow" href="https://www.r-bloggers.com/?s=eclipse">Eclipse</a>, <a title="git and github, Version Control System" rel="nofollow" href="https://www.r-bloggers.com/?s=git">git</a>, <a title="Large data in R using Hadoop" rel="nofollow" href="https://www.r-bloggers.com/?s=hadoop">hadoop</a>, <a title="Web Scraping of google, facebook, yahoo, twitter and more using R" rel="nofollow" href="https://www.r-bloggers.com/?s=Web+Scraping">Web Scraping</a>) statistics (<a title="Regressions and ANOVA analysis tutorials" rel="nofollow" href="https://www.r-bloggers.com/?s=regression">regression</a>, <a title="principal component analysis tutorial" rel="nofollow" href="https://www.r-bloggers.com/?s=PCA">PCA</a>, <a title="Time series" rel="nofollow" href="https://www.r-bloggers.com/?s=time+series">time series</a>, <a title="finance trading" rel="nofollow" href="https://www.r-bloggers.com/?s=trading">trading</a>) and more...
<img height="1" alt="" width="1" src="http://feeds.feedburner.com/~r/RBloggers/~4/4OrGPDzHcqE"></a></div>