# Overhead cost of a function call

[This article was first published on

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

**R HEAD**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Recently, I would like to apply unit testing method to my R program. The first thing i need to chop every few lines of the code into functions so that I can test each of them.

A Question comes up to my mind: What is the overhead cost of a function call? To answer this question, i wrote the following :

library(rbenchmark) library(compiler) f<-function(x,y){ x+y } g<-function(x,y){ f(x,y) } cmpf<-cmpfun(f) cmpg<-cmpfun(g) benchmark(1+2,f(1,2),g(1,2),cmpf(1,2),cmpg(1,2),cmpg2(1,2), replications =1000000, columns = c("test", "replications", "elapsed", "relative"),order='relative') test replications elapsed relative 1 1 + 2 1000000 4.00 1.000 4 cmpf(1, 2) 1000000 4.34 1.085 2 f(1, 2) 1000000 4.82 1.205 5 cmpg(1, 2) 1000000 5.44 1.360 3 g(1, 2) 1000000 5.68 1.420

The result suggests several things

- The overhead cost is about 0.82 second for 1,000,000 times function call.
- If we compile the function, the overhead cost is about 0.34 second for 1,000,000 times function call.

I don’t know whether it is a huge cost, but I believe the benefit of cleaner writing code with unit testing must worth more than that!

To

**leave a comment**for the author, please follow the link and comment on their blog:**R HEAD**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.