[Rd] strptime(): on Linux system it seems to call system time?

Peter Dalgaard pdalgd at gmail.com
Sat Mar 20 18:54:49 CET 2010


Alexander Peterhansl wrote:
> [I am herewith re-posting this message on R-devel, as it seems to be the
> most appropriate mailing list for this issue.]
> 
>  
> 
> Dear List,
> 
>  
> 
>>From what I understand, strptime() simply converts from one class
> representation to another; i.e., from character to POSIXct/POSIXlt.
> 
>  
> 
> One strange feature of this command running on Linux is that there are
> repeated calls to system time (as was revealed in a trace of system
> calls), which considerably affect performance.  These system calls end
> up taking almost 75% of the execution time, and are completely
> unnecessary.
> 
>  
> 
> Code:
> 
> ptm <- proc.time()
> 
> for (i in 1:100000) strptime("2010-03-10 17:00:00", "%F %H:%M:%S")
> 
> (proc.time() -ptm)
> 
>  
> 
> Output on Windows Box (32-bit R 2.9.1 running on Intel X5472 @ 3.0 GHz):
> 
>    user  system elapsed 
> 
>    1.31    0.02    1.30
> 
>  
> 
> Output on Linux Box (64-bit R 2.10.1 running on Intel Xeon E5520 @
> 2.27GHz):
> 
>    user  system elapsed 
> 
>    3.33    8.941    12.273
> 
>  
> 
> Any help would be appreciated.  Also, if I should turn to a different
> mailing list for this, please let me know.

It seems to be  completely system-dependent. On Fedora 9, I see

   user  system elapsed
  2.890   0.314   3.374

but on openSUSE 10.3 it is

   user  system elapsed
  3.924   6.992  10.917

At any rate, I suspect that this is an issue with the operating system
and its C libraries, not with R as such.


-- 
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Phone: (+45)38153501
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com



More information about the R-devel mailing list