RE: [R] parsing speed

From: Martin Maechler <maechler_at_stat.math.ethz.ch>
Date: Tue 17 May 2005 - 17:50:20 EST

>>>>> "BertG" == Berton Gunter <gunter.berton@gene.com> >>>>> on Mon, 16 May 2005 15:20:01 -0700 writes:

    BertG> (just my additional $.02) ... and as a general rule     BertG> (subject to numerous exceptions, caveats, etc.)

    BertG> 1) it is programming and debugging time that most
    BertG> impacts "overall" program execution time; 2) this is
    BertG> most strongly impacted by code readability and size
    BertG> (the smaller the better); 3) both of which are
    BertG> enhanced by modular construction and reuseability,
    BertG> which argues for avoiding inline code and using
    BertG> separate functions.

    BertG> These days, i would argue that most of the time it is
    BertG> program clarity and correctness (they are related)     BertG> that is the important issue, not execution speed.

    BertG> ... again, subject to exceptions and caveats, etc.

Yes indeed; very good points very well put!

Just to say it again:

If execution time ever becomes crucial for your problem (not often), the chances are considerable that the time spent is  not there [[ but you have to measure! - use Rprof() ! ]] and if it *was* there, then you have your bottleneck in one simple function that you could start optimizing... even a good reason for not inlining that code..

Martin Maechler, ETH Zurich

    BertG> -- Bert Gunter Genentech Non-Clinical Statistics     BertG> South San Francisco, CA  

    BertG> "The business of the statistician is to catalyze the     BertG> scientific learning process." - George E. P. Box    

>> -----Original Message----- From:
>> r-help-bounces@stat.math.ethz.ch
>> [mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of
>> Duncan Murdoch Sent: Monday, May 16, 2005 3:09 PM To:
>> f.calboli@imperial.ac.uk Cc: r-help Subject: Re: [R]
>> parsing speed
>>
>> Federico Calboli wrote: > Hi everyone,
>> >
>> > I have a question on parsing speed.
>> >
>> > I have two functions:
>> >
>> > F1 > F2
>> >
>> > As things are now, F2 calls F1 internally:
>> >
>> > F2 = function(x){ > if (something == 1){ > y = F1(x) >
>> } > if (something ==2){ > do whatever > } > }
>> >
>> > *Assuming there could be some difference*, is is faster
>> to use the code > as written above or should I actually
>> write the statements of F1 to make > the parsing faster?
>>
>> The parsing only happens once when you define the
>> functions, and is (almost always) a negligible part of
>> total execution time. I think you're really worried
>> about execution time. You'll probably get more execution
>> time with a separate function because function calls take
>> time.
>>
>> However, my guess is that putting F1 inline won't make
>> enough difference to notice.
>>
>> Duncan



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Tue May 17 17:55:12 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:31:47 EST