Thanks for this optimization and for adding it to R-devel. My original command on the glibc 2.3.3 machine now runs much faster:
> system.time(x <- as.Date(rep("01-01-2005", 100000), format = "%m-%d-%Y")) [1] 0.97 0.91 1.88 0.00 0.00 and is in line with the time seen on the glibc 2.3.2 machine. Jeff Prof Brian Ripley writes: > On Thu, 5 May 2005, Peter Dalgaard wrote: > > > Jeff Enos <[EMAIL PROTECTED]> writes: > > > >> Thanks for these suggestions. C-level profiling yields the following: > >> > >> % cumulative self self total > >> time seconds seconds calls s/call s/call name > >> 36.01 5.34 5.34 100000 0.00 0.00 get_locale_strings > >> 4.32 5.98 0.64 100000 0.00 0.00 mktime00 > >> 3.98 6.57 0.59 277462 0.00 0.00 Rf_eval > >> 3.71 7.12 0.55 472935 0.00 0.00 Rf_findVarInFrame3 > >> 3.64 7.66 0.54 100000 0.00 0.00 strptime_internal > >> 3.51 8.18 0.52 1 0.52 7.51 do_strptime > >> > >> It looks like strftime is called from get_locale_strings, which might > >> be the culprit. Any suggestions on where I might go from here? > > > > You might try modifying get_locale_strings (and its wide counterpart) > > with a check for an unchanged locale. E.g. > > > > static char *last_LC_TIME=NULL; > > > > .... > > > > tmp = setlocale(LC_TIME, NULL) > > if (strcmp(tmp, last_LC_TIME)) return; > > > > last_LC_TIME = tmp; > > > > .... set the strings .... > > > > if the call to setlocale is considerably faster than 40 calls to > > strftime(), you might have a winner. > > Yes, I think that would be a worthwhile optimization. I didn't bother > because I figured it would be fast enough (which at 50musec it almost > always is). > > However, get_locale_strings is only 36% of the total, and we have at least > another 60% to account for. (81.01 vs 1.18 secs.) > > -- > Brian D. Ripley, [EMAIL PROTECTED] > Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ > University of Oxford, Tel: +44 1865 272861 (self) > 1 South Parks Road, +44 1865 272866 (PA) > Oxford OX1 3TG, UK Fax: +44 1865 272595 -- Jeff Enos Kane Capital Management [EMAIL PROTECTED] ______________________________________________ R-devel@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-devel