From murdoch at stats.uwo.ca  Fri Aug 29 21:52:26 2008
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Fri, 29 Aug 2008 15:52:26 -0400
Subject: [Rd] locale2charset CPU overhead (PR#12633)
In-Reply-To: <20080828192512.CC4D2282C76C@mail.pubhealth.ku.dk>
References: <20080828192512.CC4D2282C76C@mail.pubhealth.ku.dk>
Message-ID: <48B8537A.30103@stats.uwo.ca>

On 8/28/2008 3:25 PM, fox_jgigtp at trashmail.net wrote:
> Full_Name: R User
> Version: 2.7.2 (default binary)
> OS: Windows XP SP2
> Submission from: (NULL) (83.25.29.163)
> 
> 
> Hello!
> 
> I have conducted following experiment running simple R script:
> 
> for (i in 1:10000) {
>     a<-0
>    for (j in 1:1000)
>      a<-c(a,j)
> }
> 
> profiled R.dll using Intel Vtune and obtained following results!!!
> 
> Func. Name              Clocticks
> locale2charset	        46,58%	
> R_RunWeakRefFinalizer	20,85%	
> Rf_eval		        8,77%	
> 
> Rf_eval takes only about 9% of CPU time, a huge overhead on checking 
> locale character set!!! It seems that is the problem with family of 
> functions: c(), rbind(), cbind()

I don't have Vtune, so I don't know that its clock counts are reliable. 
  Could you please identify where the calls to locale2charset are coming 
from?  I don't see anything obvious in the source that would explain 
this, so I suspect Vtune is misreporting.

If I were to guess, I would say your loop would be spending most of its 
time in memory management functions, since you allocate and reallocate 
"a" so many times.  Since those aren't even mentioned by Vtune, I think 
it is confused.

Duncan Murdoch



[Rd] locale2charset CPU overhead (PR#12633)
Duncan Murdoch