Hello Jim, thanks for the reply! What I'm trying to do:
I have a small function that makes use of many other functions, such as the one I called "estimate.NAC.structure.of()" I'm trying to make run everything faster. Thus I'm using Rprof to perform a line by line profiling to help me decide what lines of code I should replace. Mostly it's this estimate.NACstructure.of function that requires time. I could copy paste this function, but it has more than a 1000 lines of code... The line #33 and what's around is rankCR=function(a, b, c) { vvv=c(-1, -1, -1) dens=.C("rankC", as.integer(sample.size), as.double(vvv), as.double(a), as.double(b),as.double(c), result=as.double(rep(-1, sample.size*3)), ties=as.double(rep(-1, sample.size*3))) ################ line 33 return(list(matrix(dens[["result"]], ncol=3, nrow=sample.size, byrow=TRUE), as.numeric(dens[["ties"]]))) } This rankCR function is then used in a loop: pre.r <- rankCR(pseudo.samples[[a]], pseudo.samples[[b]], pseudo.samples[[c]]) where pseudo.samples[[whatever]] is just a vector. And so the problem is that this rankCR function eats up more than 50% of the execution time according to the first profiling (more precisely, line 33 is eating up more than 50% of the execution time), then does not even show up in the top 30 in the second profiling... thus what I have to improve to make the code run faster is getting not that clear. On Wed, Jan 29, 2014 at 10:02 PM, jim holtman <jholt...@gmail.com> wrote: > You should at least post the script so that we see what line 33 is. > For example, was it an input statement so that on the second time you > ran the data was cached in memory? Did you remove all the objects and > do a gc() to clean up memory before trying again (maybe there was some > data hanging around that helped out). It is not unknown to get > different results if you are having to access, especially, external > data. > > Jim Holtman > Data Munger Guru > > What is the problem that you are trying to solve? > Tell me what you want to do, not how you want to do it. > > > On Wed, Jan 29, 2014 at 8:29 AM, Nathan Uyttendaele <na.uyt...@gmail.com> > wrote: > > Hello, > > > > when I run this code in a brand new R session > > > > -------------------------------------------------- > > ### loading of libraries and other functions > > > > Rprof("profiling.out") > > start.time=proc.time()[3] > > for(i in 1:50) { > > main.function() > > } > > end.time=proc.time()[3] > > Rprof() > > --------------------------------------------------- > > > > I get as result of the profiling > > > > estimateNACstructureof.R#33 56.6900000 > > > > estimateNACstructureof.R#93 5.2200000 > > > > estimateNACstructureof.R#87 4.9700000 > > > > estimateNACstructureof.R#78 1.9400000 > > > > oldFriedman.R#39 1.2600000 > > > > estimateNACstructureof.R#81 1.2100000 > > > > estimateNACstructureof.R#88 1.2000000 > > > > estimateNACstructureof.R#657 0.9600000 > > > > todecompose.R#34 0.6900000 > > > > estimateNACstructureof.R#658 0.6600000 > > > > estimateNACstructureof.R#264 0.6500000 > > > > estimateNACstructureof.R#923 0.5900000 > > > > aresameNACstructures.R#4 0.5600000 > > > > estimateNACstructureof.R#1059 0.4800000 > > > > estimateNACstructureof.R#1064 0.4700000 > > > > estimateNACstructureof.R#22 0.4600000 > > > > estimateNACstructureof.R#659 0.4500000 > > > > nicenodenames.R#22 0.4400000 > > > > estimateNACstructureof.R#1029 0.4200000 > > > > todecompose.R#119 0.4200000 > > > > estimateNACstructureof.R#1061 0.4000000 > > > > estimateNACstructureof.R#654 0.3800000 > > > > todecompose.R#12 0.3800000 > > > > estimateNACstructureof.R#85 0.3700000 > > > > estimateNACstructureof.R#89 0.3700000 > > > > todecompose.R#19 0.3500000 > > > > todecompose.R#160 0.3500000 > > > > estimateNACstructureof.R#1060 0.3300000 > > > > estimateNACstructureof.R#83 0.3100000 > > > > todecompose.R#144 0.3100000 > > > > sampling.time 207.1400000 > > > > total.elapsed.time 235.9440000 > > > > total.elapsed.time/samping.time*100 87.79202 > > > > > > Except for the 3 last rows, what we have is the self.pct value in > > decreasing order, by line. > > > > > > What I do not understand is that if am to run the same code all over > again, > > I now get > > > > > > estimateNACstructureof.R#852 4.34000 > > > > estimateNACstructureof.R#923 3.94000 > > > > estimateNACstructureof.R#87 3.38000 > > > > estimateNACstructureof.R#93 3.31000 > > > > estimateNACstructureof.R#859 2.70000 > > > > estimateNACstructureof.R#1029 2.27000 > > > > estimateNACstructureof.R#657 1.65000 > > > > estimateNACstructureof.R#933 1.51000 > > > > estimateNACstructureof.R#78 1.49000 > > > > estimateNACstructureof.R#721 1.49000 > > > > todecompose.R#34 1.49000 > > > > estimateNACstructureof.R#658 1.39000 > > > > estimateNACstructureof.R#1064 1.26000 > > > > estimateNACstructureof.R#1059 1.25000 > > > > estimateNACstructureof.R#659 1.21000 > > > > estimateNACstructureof.R#1061 1.20000 > > > > aresameNACstructures.R#4 1.17000 > > > > estimateNACstructureof.R#1060 1.09000 > > > > todecompose.R#12 1.00000 > > > > todecompose.R#145 0.98000 > > > > estimateNACstructureof.R#723 0.97000 > > > > getNACadjacencyof.R#10 0.97000 > > > > estimateNACstructureof.R#709 0.96000 > > > > oldFriedman.R#39 0.90000 > > > > estimateNACstructureof.R#81 0.89000 > > > > estimateNACstructureof.R#88 0.88000 > > > > estimateNACstructureof.R#708 0.88000 > > > > todecompose.R#119 0.86000 > > > > todecompose.R#160 0.84000 > > > > estimateNACstructureof.R#715 0.83000 > > > > sampling.time 198.38000 > > > > total.elapsed.time 203.56800 > > > > total.elapsed.time /samping.time*100 97.45147 > > > > > > > > And the line 33 of estimateNACstructureof, which previously was observed > > 56.69% of the sampling time is now... gone ! If I profile he code in the > > same R session again and again, line 33 of estimateNACstructureof seems > > never to appear again. > > > > > > In fact the line 33 of estimateNACstructureof appears only when Rprof is > > run for the first time in the R session. > > > > > > Note: this is maybe relevant, the line 33 of estimateNACstructureof > refers > > to C function. > > > > > > Any thoughts of what I get this peculiar result? > > > > [[alternative HTML version deleted]] > > > > ______________________________________________ > > R-help@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-help > > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.